刚才我有一条像MyDir\Inner\Foo
这样的路径,我希望能够将其转换为MyDir\Inner
。
我的想法是使用Path.Combine(myRelativeDir, "..")
,然后(出于用户显示目的)解析它以删除..
。
当我在网上对此进行研究时,我似乎只能找到在Path.GetFullPath
之后执行Path.Combine
来解决问题的解决方案,但这对我没有帮助,因为它会导致某些问题比如C:\RootFolders\ThatIWantToHide\MyDir\Inner
,我不想显示完整的路径。
标准库中是否有任何允许这样的内容,或者我是否必须使用某种字符串操作?
总结
输入:
MyDir\Inner\Foo
(相对路径)
期望的输出:
MyDir\Inner
(保持相对路径)
不受欢迎的输出:
C:\RootFolders\ThatIWantToHide\MyDir\Inner
(相对路径丢失)
不受欢迎的输出:
Inner
(只是名称,而不是相对路径)
答案 0 :(得分:3)
这将获取父级并维护相对路径信息:
Console.WriteLine(Path.GetDirectoryName(@".\bin\debug"));
答案 1 :(得分:0)
您可以使用Path.GetFullPath获取绝对路径,然后使用this post的答案将其更改为相对路径。简而言之,代码使用Uri.MakeRelativeUri()方法。