如何在 Rust 中删除具有特定文件扩展名的文件
How can I remove files with a specific file extension in Rust
我需要从 Rust 的特定目录中删除所有扩展名为“.html”的文件。
你知道我该怎么做吗?
删除文件分为两部分:
- 正在查找文件
- 正在删除文件
您可以通过遍历目录中的每个文件并检查扩展名轻松地在 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 是什么
我需要从 Rust 的特定目录中删除所有扩展名为“.html”的文件。
你知道我该怎么做吗?
删除文件分为两部分:
- 正在查找文件
- 正在删除文件
您可以通过遍历目录中的每个文件并检查扩展名轻松地在 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 是什么