在 Rust 中迭代 ReadDir 并将文件名附加到数组中

问题描述 投票:0回答:1

我正在尝试使用 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 具有这种类型。

arrays string rust tauri node.js-fs
1个回答
0
投票

简单的例子:

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

© www.soinside.com 2019 - 2024. All rights reserved.