获取文件所在的文件夹

8

我正在尝试从Rust文件中提取包含文件夹。 有没有办法从String获取包含文件夹?例如,下面的代码可以工作,但它很麻烦:

let path = "/path/to/file.txt";

let mut path_arr: Vec<&str> = path.split('/').collect();
path_arr.pop();

let new_string = path_arr.join("/");

assert_eq!("/path/to", new_string);
1个回答

9

有两种内置类型用于此操作:PathPathBuf

use std::path::PathBuf;

let path = PathBuf::from("/path/to/file.txt");
let dir = path.parent().unwrap();

assert_eq!("/path/to", dir.to_str().unwrap());

通常情况下,您不需要像上面所做的那样将 PathPathBuf 转换回 &strString,因为大多数 std API 可以直接接受它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接