Compares two rooted paths for equality. Any of the paths provided may end with path separator - it will be ignored. : Path « File Stream « C# / C Sharp

Compares two rooted paths for equality. Any of the paths provided may end with path separator - it will be ignored.


 * Filename:    FileUtil.cs
 * Product:     Versioning Controlled Build
 * Solution:    BuildAutoIncrement
 * Project:     Shared
 * Description: File utility methods.
 * Copyright:   Julijan ?ribar, 2004-2007
 * This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the author(s) be held liable for any damages
 * arising from the use of this software.
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 * 1. The origin of this software must not be misrepresented; you must not
 *    claim that you wrote the original software. If you use this software
 *    in a product, an acknowledgment in the product documentation would be
 *    appreciated but is not required.
 * 2. Altered source versions must be plainly marked as such, and must not be
 *    misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

namespace BuildAutoIncrement {

    /// <summary>
  /// A set of file utilities.
  /// </summary>
  public struct FileUtil {

        /// <summary>
        ///   Compares two rooted paths for equality. Any of the paths provided
        ///   may end with path separator - it will be ignored.
        /// </summary>
        /// <param name="absolutePath1">
        ///   First path.
        /// </param>
        /// <param name="absolutePath2">
        ///   Second path.
        /// </param>
        /// <returns>
        ///   <c>true</c> if both paths correspond to the same folder.
        /// </returns>
        public static bool PathsAreEqual(string absolutePath1, string absolutePath2) {
            Debug.Assert(absolutePath1 != null && Path.IsPathRooted(absolutePath1));
            Debug.Assert(absolutePath2 != null && Path.IsPathRooted(absolutePath2));
            // remove any trailing separators
            char endingChar = absolutePath1[absolutePath1.Length - 1];
            if (endingChar == Path.DirectorySeparatorChar || endingChar == Path.AltDirectorySeparatorChar)
                absolutePath1 = Path.GetDirectoryName(absolutePath1);
                absolutePath1 = Path.GetFullPath(absolutePath1);
            endingChar = absolutePath2[absolutePath2.Length - 1];
            if (endingChar == Path.DirectorySeparatorChar || endingChar == Path.AltDirectorySeparatorChar)
                absolutePath2 = Path.GetDirectoryName(absolutePath2);
                absolutePath2 = Path.GetFullPath(absolutePath2);
            return string.Compare(absolutePath1, absolutePath2, true) == 0;


Related examples in the same category

1.Paths in C#
3.Use static methods in Path
4.Resolve Path
5.Map Path
6.File Path Collection
7.Directory listing
8.Gets a list of files
9.Get Relative Path
10.Make Absolute Path
11.Combines two path strings.
12.Split the path into array of string
13.Get Application Relative Path
14.Performs operations on String instances that contain file or directory path information.
15.Get temp path
16.Get full path
17.Get temp file name
18.Combines two strings into a path.
19.Combines three strings into a path.
20.Combines four strings into a path.
21.Combines an array of strings into a path.
22.Get a list of invalid path characters.
23.Get a list of invalid file characters.
24.creates a relative path to "targetFile" that is relative to "path"
25.Creates a relative path from one file or folder to another.
26.Copies the specified resource to a temporary file and returns its path.
27.Is valid path name
28.Get Application Path
29.Calculate Relative Path
30.Combine paths
31.Gets the path of the current request relative to the application base path.
32.Redirects to a path relative to the application base path.
33.Gets the relative path from a source to a target path.
34.Gets the common root path of the given path list.
35.Relative Paths
36.Checks if path provided corresponds to a directory.
37.Combines two paths, removing root-folder combinations.
38.Combine base Path and relative Path
39.Get Execution Path
40.Get relative path (2)
41.Formats the path.
42.Gets the relative path.
43.Checks a directory path and returns a normalized form with trailing
44.Returns the path argument adjusted to be relative to the base path. Absolute path names will be returned unchanged.