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文件系统类别中

Download history 1334198/week @ 2024-04-19 1283813/week @ 2024-04-26 1317135/week @ 2024-05-03 1335517/week @ 2024-05-10 1348964/week @ 2024-05-17 1305813/week @ 2024-05-24 1479912/week @ 2024-05-31 1457060/week @ 2024-06-07 1416295/week @ 2024-06-14 1472772/week @ 2024-06-21 1412899/week @ 2024-06-28 1441026/week @ 2024-07-05 1517496/week @ 2024-07-12 1545156/week @ 2024-07-19 1559377/week @ 2024-07-26 1582113/week @ 2024-08-02

6,481,054 每月下载次数
13,035 个 Crates 中使用 (1,564 直接使用)

MIT/Apache

54KB
976 代码行

glob

支持与 Unix shell 风格的模式匹配文件路径。

Continuous integration

文档

使用方法

要使用 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 风格的模式匹配文件路径。

globglob_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())
    }
}

无运行时依赖