如何在 Rust 中删除具有特定文件扩展名的文件

How can I remove files with a specific file extension in Rust

我需要从 Rust 的特定目录中删除所有扩展名为“.html”的文件。

你知道我该怎么做吗?

删除文件分为两部分:

  1. 正在查找文件
  2. 正在删除文件

您可以通过遍历目录中的每个文件并检查扩展名轻松地在 Rust 中找到该文件,如下所示:

use std::fs;

for path in fs::read_dir("/path/to/dir").unwrap() {
    let path = path.unwrap().path();
    let extension = path.extension().unwrap();
}

现在您可以使用 extension 做任何您想做的事情,例如检查它是否 html 并删除文件,如下所示:

use std::ffi::OsStr;
if extension == OsStr::new("html") {
    fs::remove_file(path).unwrap();
}

Playground(实际上并不是 运行 它,而是显示完整代码)


或者,您可以使用 glob 这样的板条箱让您的生活更轻松。使用 glob 使您的代码如下:

use glob::glob;
for path in glob("/path/to/dir/*.html").unwrap() {
    match path {
        Ok(path) => {
            println!("Removing file: {:?}", path.display());
            std::fs::remove_file(path);
        },
        Err(e) => println!("{:?}", e);
    }
}

glob wiki article 因为如果你不知道 glob 是什么