【问题标题】:Create relative path between two paths [duplicate]在两条路径之间创建相对路径[重复]
【发布时间】:2011-08-08 18:00:02
【问题描述】:

可能重复:
How to get relative path from absolute path

我目前正在使用FolderBrowserDialog 返回绝对路径。我想获取相对于当前执行目录的相对路径。鉴于FolderBrowserDialog 只返回一个绝对路径,有没有办法将其转换为相对路径?

【问题讨论】:

标签: c# .net


【解决方案1】:

您想使用 Uri.MakeRelativeUri(uri)。获取当前正在执行的程序集,将其存储为 Uri。从文件夹浏览器的目录中创建第二个 Uri,并使用 MakeRelativeUri()。我问了一个类似的问题,涉及到正确解码 Uri 的细节,以便路径是 Windows 文件夹的有效形式。

Removing %20 from URI Relative Path

【讨论】:

  • 你到底为什么要为一个文件系统目录做这个?他们将其称为 Uri 类是有原因的:它是为与 URI 一起使用而设计的。
  • @Cory,这是针对发布的问题给出的结论。我不知道另一种方法。如果您有更直接的方法来使用文件系统目录,那么您可以,您知道,提供一个答案,因为这也是这个 OP 所要求的。享受系统调用的乐趣。
  • 我没有“提供答案”,因为这个问题是重复的。相反,我提供了“关闭为重复”的投票。这个答案比得出相同结论的原始答案不完整,这正是我们不鼓励在这里重复答案的原因。想不出更好的方法并不意味着它是正确的方法。
  • 实际上使用 Uri 可以说是处理未知来源路径的最安全方法,可以处理大多数边缘情况和安全问题。上面的答案过于简单化了,但是基于 Uri 的方法在 VS 内部使用了路径比较、rel 和 abs 确定和操作以及许多其他功能。仅仅因为它说 Uri 它不应该打折。
  • 从技术上讲,本地路径仍然算作 URI,对吧?
猜你喜欢
  • 2017-03-29
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2019-03-12
  • 2016-02-10
  • 2019-04-10
  • 1970-01-01
相关资源
最近更新 更多