我正在尝试使用 fs::read_dir() 并迭代结果并将所有文件名附加到数组中。像这样的东西,除了这不起作用:
let mut result: Vec<&str> = Vec::new();
for i in fs::read_dir(directory).iter(){
result.append(i);
}
我已经尝试了在互联网上能找到的所有东西,但我对 Rust 还很陌生,而且我真的不知道自己在做什么。 注意:目录参数需要是字符串类型,因为我正在使用 Tauri,而 TypeScript/JavaScript 只有常规字符串,而不是其他一些疯狂的类型,我可以想象 Rust 具有这种类型。
简单的例子:
use std::ffi::OsStr;
use std::fs;
fn main() {
let mut result: Vec<String> = Vec::new();
for i in fs::read_dir(".").unwrap() {
let i = i.unwrap().path();
let file_name = i.file_name().and_then(OsStr::to_str).unwrap();
result.push(file_name.to_string());
}
dbg!(result);
}
append()
仅在合并两个集合时才有意义。使用push()
。 read_dir()
返回一个Result
,您需要先检查结果才能使用Iterator
。