首页 > 解决方案 > 如何按扩展名过滤文件名列表?

问题描述

我设法从一个路径读取所有文件到 a Vec,现在我想按扩展名过滤。

let path = Path::new(r"C:\Testpath");
let mut faxvec: Vec<String> = Vec::new();

for element in path.read_dir().unwrap() {
    // if match element
    faxvec.push(element);
}

我只想将文件推送到以“.txt”结尾的向量

标签: rust

解决方案


也许您正在寻找以下方面的东西:

fn main() {
    let mut faxvec: Vec<std::path::PathBuf> = Vec::new();
    for element in std::path::Path::new(r"C:\Testpath").read_dir().unwrap() {
        let path = element.unwrap().path();
        if let Some(extension) = path.extension() {
            if extension == "txt" {
                faxvec.push(path);
            }
        }
    }
}

推荐阅读