27 个版本
使用旧的 Rust 2015
0.3.1 | 2023 年 1 月 6 日 |
---|---|
0.3.0 | 2019 年 3 月 7 日 |
0.2.11 | 2016 年 3 月 6 日 |
0.2.10 | 2015 年 4 月 14 日 |
0.1.0 | 2014 年 11 月 27 日 |
5 在 文件系统类别中
6,481,054 每月下载次数
在 13,035 个 Crates 中使用 (1,564 直接使用)
54KB
976 代码行
glob
支持与 Unix shell 风格的模式匹配文件路径。
使用方法
要使用 glob
,请将以下内容添加到您的 Cargo.toml
[dependencies]
glob = "0.3.1"
并将以下内容添加到您的 crate 根目录
extern crate glob;
示例
打印出 /media/ 及其所有子目录下的所有 jpg 文件。
use glob::glob;
for entry in glob("/media/**/*.jpg").expect("Failed to read glob pattern") {
match entry {
Ok(path) => println!("{:?}", path.display()),
Err(e) => println!("{:?}", e),
}
}
lib.rs
:
支持与 Unix shell 风格的模式匹配文件路径。
glob
和 glob_with
函数允许查询文件系统以获取与特定模式匹配的所有文件(类似于 libc glob
函数)。Pattern
类型的方法提供了检查单个路径是否匹配特定模式的功能(类似于 libc fnmatch
函数)。
为了跨平台一致性以及支持 Windows,此模块完全用 Rust 实现,而不是依赖于 libc 的 glob/
fnmatch
函数。
示例
要打印出 /media/
及其所有子目录下的所有 jpg 文件。
use glob::glob;
for entry in glob("/media/**/*.jpg").expect("Failed to read glob pattern") {
match entry {
Ok(path) => println!("{:?}", path.display()),
Err(e) => println!("{:?}", e),
}
}
要打印出在当前工作目录相对路径的 local
目录中包含字母 "a" 的所有文件,不区分大小写。这会忽略错误而不是打印它们。
use glob::glob_with;
use glob::MatchOptions;
let options = MatchOptions {
case_sensitive: false,
require_literal_separator: false,
require_literal_leading_dot: false,
};
for entry in glob_with("local/*a*", options).unwrap() {
if let Ok(path) = entry {
println!("{:?}", path.display())
}
}