如何使用Path
或PathBuf
将“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/