rust - 如何在文件名之前的路径中添加文件夹?

标签 rust path filepath

如何使用PathPathBuf将“C:\foo\bar.txt”更改为“C:\foo\baz\bar.txt”?
我想在文件名之前将一个文件夹添加到路径。

最佳答案

Path 类型支持多种方法来操纵和分解路径,因此添加目录应该很简单。例如:

fn append_dir(p: &Path, d: &str) -> PathBuf {
    let dirs = p.parent().unwrap();
    dirs.join(d).join(p.file_name().unwrap())
}
我正在Linux上进行测试,因此对我来说测试看起来像这样,但是在Windows上,您应该可以使用C:\...就可以了:
fn main() {
    let p = Path::new(r"/foo/bar.txt");
    assert_eq!(append_dir(&p, "baz"), Path::new(r"/foo/baz/bar.txt"));
}

关于rust - 如何在文件名之前的路径中添加文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66193779/

相关文章:

rust - panic 和 process::exit 有什么区别

css - Magento 在 CSS 路径中加倍了基本 url

java - Windows 上的 Spark - "The system cannot find the path specified."

java - JAR 文件缺少文件路径

java - 在Java中如何引用路径中包含空格的文件?

rust - Rust泛型: expected type parameter,找到&T

parsing - 如何使用 nom 精确匹配一个字节?

c# - 序列化到 XML 路径问题

java - 选择文件的简单方法

testing - 运行 `cargo test --workspace` 并排除一项测试