我认为这应该是可行的,因为有一个很好的函数canonicalize可以规范化路径(所以我可以从规范化我的两个输入路径开始),而PathPathBuf为我们提供了一种迭代路径部分到components的方法.我想这里可以解决一些问题,找出一个公共前缀,然后将锚路径中剩余的..个组件预先添加到初始输入路径的剩余部分.

我的问题似乎很常见:

  1. How to find relative path given two absolute paths?
  2. Find a path in Windows relative to another

推荐答案

现在,它以pathdiff crate 的形式存在,使用kennytm's answer中的代码

您可以将其用作:

extern crate pathdiff;

pathdiff::diff_paths(path, base);

其中base是应用相对路径以获得path的位置

Rust相关问答推荐

SQL x中的mut *transaction和mut transaction有什么区别?

trait声明中的生命周期参数

Arrow RecordBatch as Polars DataFrame

在决定使用std::Sync::Mutex还是使用Tokio::Sync::Mutex时,操作系统线程调度是考虑因素吗?

取得本地对象字段的所有权

Tokio_Postgres行上未显示退回特性的生存期,且生命周期 不够长

Gtk4-rs:将监视器作为gdk::monitor获取,而不是作为glib::对象获取

S在Cargo.toml中添加工作空间开发依赖关系的正确方法是什么?

.在 Rust 模块标识符中

提取指向特征函数的原始指针

如何在 Rust 中打印 let-else 语句中的错误?

如何在 Rust 中将函数项变成函数指针

没有明确地说return会产生错误:match arms have incompatible types

pyO3 和 Panics

是否可以通过可变引用推进可变切片?

具有在宏扩展中指定的生命周期的枚举变体数据类型

打印 `format_args!` 时borrow 时临时值丢失

是否可以在 Rust 中的特定字符上实现特征?

判断 is_ok 后重用结果

意外的正则表达式模式匹配