Каков наилучший способ сравнить два пути в.Net, чтобы выяснить, указывают ли они на один и тот же файл или каталог?
-
Как бы проверить, что они одинаковы:
c:\Some Dir\SOME FILE.XXX C:\\\SOME DIR\some file.xxx
-
Еще лучше: есть ли способ проверить, что эти пути указывают на один и тот же файл на каком-либо сетевом диске:
h:\Some File.xxx \\Some Host\Some Share\Some File.xxx
ОБНОВИТЬ:
Кент Боогаарт правильно ответил на мой первый вопрос; но мне все же интересно узнать, есть ли решение моего второго вопроса о сравнении путей файлов и каталогов на сетевом диске.
ОБНОВЛЕНИЕ 2 (комбинированные ответы по моим двум вопросам):
Вопрос 1: локальные и/или сетевые файлы и каталоги
c:\Some Dir\SOME FILE.XXX
C:\\\SOME DIR\some file.xxx
Ответ: используйте System.IO.Path.GetFullPath
как показано на примере:
var path1 = Path.GetFullPath(@"c:\Some Dir\SOME FILE.XXX");
var path2 = Path.GetFullPath(@"C:\\\SOME DIR\subdir\..\some file.xxx");
// outputs true
Console.WriteLine("{0} == {1} ? {2}", path1, path2, string.Equals(path1, path2, StringComparison.OrdinalIgnoreCase));
Вопрос 2: локальные и/или сетевые файлы и каталоги
Ответ. Используйте метод GetPath, как показано на странице http://briancaos.wordpress.com/2009/03/05/get-local-path-from-unc-path/.