C#规范文件名

10

如何通过非规范化的文件名获取规范化的文件名。

例如,我想调用一个函数,将"C:\Program files\..\Windows\aaa.txt"转换为"C:\Windows\aaa.txt"

我正在寻找类似于Java File.getCanonicalPath()的东西。


你是在寻找这个吗?(http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx) - Renatas M.
3个回答

19
你可以使用 Path.GetFullPath 方法来实现此功能。
示例:
Console.WriteLine(Path.GetFullPath(@"C:\Program files\..\Windows\aaa.txt"));

输出结果:

C:\Windows\aaa.txt


5
这段话的意思是,在.NET中使用Path类的GetFullPath方法或FileInfo的FullName属性可以实现类似于Java的CanonicalPath的功能,但要注意的是,它们并不能完全替代Java的CanonicalPath。因为Java的CanonicalPath会规范路径内驱动器盘符的大小写,而在.NET中的GetFullPath则不会这样做。 - Mishax

3
System.IO.Path.GetFullPath("C:/Program files/../Windows/aaa.txt")

将会返回

"C:\\Windows\\aaa.txt"

1

这是我的建议:

string path = Path.GetFullPath(@"C:\Program files\..\Windows\aaa.txt");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接