tags:

views:

417

answers:

1

What is the equivalent to PathCanonicalize in C#?

Use: I need to take a good guess whether two file paths refer to the same file (without disk access). My typical approach has been throwing it through a few filters like MakeAbsolute and PathCanonicalize, and then do a case-insensitive comparison.

+4  A: 

quick and dirty:

In the past I have created a FileInfo object from the path string and then used the FullName property. This removes all of the ..\'s and the .\'s.

Of course you could interop:

 [DllImport("shlwapi", EntryPoint="PathCanonicalize")]
    private static extern bool PathCanonicalize(
        StringBuilder lpszDst,
        string lpszSrc
    );
Greg Dean