我正在尝试使用相对路径加入Windows路径Path.Combine
.
但是,Path.Combine(@"C:\blah",@"..\bling")
返回C:\blah\..\bling
而不是C:\bling\
.
有没有人知道如何在不编写我自己的相对路径解析器的情况下完成此任务(这不应该太难)?
什么有效:
string relativePath = "..\\bling.txt"; string baseDirectory = "C:\\blah\\"; string absolutePath = Path.GetFullPath(baseDirectory + relativePath);
(结果:absolutePath ="C:\ bling.txt")
什么行不通
string relativePath = "..\\bling.txt"; Uri baseAbsoluteUri = new Uri("C:\\blah\\"); string absolutePath = new Uri(baseAbsoluteUri, relativePath).AbsolutePath;
(结果:absolutePath ="C:/blah/bling.txt")
在组合路径上调用Path.GetFullPath http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx
> Path.GetFullPath(Path.Combine(@"C:\blah\",@"..\bling")) C:\bling
(我同意Path.Combine应该自己做)
Path.GetFullPath(@"c:\windows\temp\..\system32")?