刚才我有这样一条MyDirInnerFoo
路径,我希望能够将其转换为MyDirInner
。
我的想法是使用Path.Combine(myRelativeDir, "..")
然后(出于用户显示目的(解决它以删除..
。
当我在网上研究这个问题时,我似乎只能找到涉及在Path.Combine
后做一个Path.GetFullPath
来解决它的解决方案,但这对我没有帮助,因为它会导致类似C:RootFoldersThatIWantToHideMyDirInner
的东西,我不想显示完整的路径。
标准库中是否有任何允许这样做的内容,或者我是否必须诉诸某种字符串操作?
总结
输入:MyDirInnerFoo
(相对路径(
期望输出:MyDirInner
(保持相对路径(
不需要的输出:C:RootFoldersThatIWantToHideMyDirInner
(相对路径丢失(
不需要的输出:Inner
(只是名称,而不是相对路径(
这将获取父级并维护相对路径信息:
Console.WriteLine(Path.GetDirectoryName(@".bindebug"));
您可以使用 Path.GetFullPath 获取绝对路径,然后使用本文的答案将其更改为相对路径。简而言之,代码使用 Uri.MakeRelativeUri(( 方法。