c - 给定两个绝对路径,如何找到相对路径?

标签 c path relative-path absolute-path

给定两个绝对路径,例如

  • /a/path/to/a
  • /a/path/to/somewhere/else

如何获得从一个到另一个的相对路径,../a

在某种意义上,与realpath相反

最佳答案

找到最长的公共(public)路径(在本例中为/a/path/to)并将其从两个绝对路径中删除。那会给出:

  • /a
  • /somewhere/else

现在,将起始路径中的每个路径组件替换为 ../ 并将结果添加到目标路径中。如果你想从目录 else 转到目录 a,那会给你:

../../a

如果你想走另一条路,你应该:

../somewhere/else

关于c - 给定两个绝对路径,如何找到相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055511/

相关文章:

javascript - 从 ES6 模块解析相对路径到绝对 url(在浏览器中)

c - 有没有办法让类变量像虚拟变量一样具有setter/getter?

java - 如何将 PATH 环境变量设置为指向 JRE 1.5 版

以 ~ 开头的 C++ 路径

C#文件路径编解码

html - 浏览器如何从相对路径知道样式表的绝对位置

c# - 获取文件的相对路径 C#

在 AIX 上使用 ioctl 的网络接口(interface)的硬件地址

c - 管道时,为什么在使用 dup2() 之前必须关闭() 管道的另一端?

使用 C 压缩 double 值