可能是重复问题:
在C#中确定两个路径是否引用同一文件的最佳方法
我有两个Windows文件名需要比较,以确定它们是否相同。一个是用户提供给我的,另一个是其他程序提供给我的。那么应该如何进行比较呢:
C:\Program Files\Application1\APP.EXE C:\Progra~1\Applic~1\APP.EXE C:\program files\applic~1\app.exe
我似乎找不到一种一致地“规范化”路径的方法,我尝试使用Path.GetFullPath(path)和new FileInfo(path)。FullName,但两者都无法解决这个问题。
更新:
Path.GetFullPath(path)将纠正短名称转换为长名称,但它不会规范化大小写。因此,需要使用StringComparer.OrdinalIgnoreCase.Equals(path1,path2)。
GetFullPath
可能不支持最近版本的NTFS支持的联接或链接。虽然对于99.9%的人来说可能不是问题。 - Tim Sylvester