如何通过非规范化的文件名获取规范化的文件名。
例如,我想调用一个函数,将"C:\Program files\..\Windows\aaa.txt"
转换为"C:\Windows\aaa.txt"
我正在寻找类似于Java File.getCanonicalPath()的东西。
如何通过非规范化的文件名获取规范化的文件名。
例如,我想调用一个函数,将"C:\Program files\..\Windows\aaa.txt"
转换为"C:\Windows\aaa.txt"
我正在寻找类似于Java File.getCanonicalPath()的东西。
Path.GetFullPath
方法来实现此功能。Console.WriteLine(Path.GetFullPath(@"C:\Program files\..\Windows\aaa.txt"));
输出结果:
C:\Windows\aaa.txt
Path
类的GetFullPath方法或FileInfo
的FullName属性可以实现类似于Java的CanonicalPath的功能,但要注意的是,它们并不能完全替代Java的CanonicalPath。因为Java的CanonicalPath会规范路径内驱动器盘符的大小写,而在.NET中的GetFullPath则不会这样做。 - MishaxSystem.IO.Path.GetFullPath("C:/Program files/../Windows/aaa.txt")
将会返回
"C:\\Windows\\aaa.txt"
这是我的建议:
string path = Path.GetFullPath(@"C:\Program files\..\Windows\aaa.txt");