如何将文件夹添加到文件名前的路径?
How to add a folder to a path before the filename?
如何使用 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"));
}
如何使用 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"));
}