#file-path #ignore #gitignore #file #glob #directory #pattern

rustfmt_ignore

一个用于高效匹配忽略文件(如 .gitignore)与文件路径的快速库

1 个不稳定版本

使用旧的 Rust 2015

0.4.10 2020 年 1 月 4 日

#1410 in 文件系统


用于 rustfmt_lib

Unlicense/MIT 许可

195KB
4K SLoC

ignore

ignore crate 提供了一个快速的递归目录迭代器,该迭代器尊重各种过滤器,如 globs、文件类型和 .gitignore 文件。此 crate 还提供了对 gitignore 和文件类型匹配器的底层直接访问。

Linux build status Windows build status

双许可 MIT 或 UNLICENSE

文档

https://docs.rs/ignore

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
ignore = "0.4"

并将其添加到您的 crate 根目录

extern crate ignore;

示例

此示例展示了此 crate 的最基本用法。此代码将递归遍历当前目录,并根据在 .ignore.gitignore 等文件中找到的忽略 globs 自动过滤文件和目录

use ignore::Walk;

for result in Walk::new("./") {
    // Each item yielded by the iterator is either a directory entry or an
    // error, so either print the path or the error.
    match result {
        Ok(entry) => println!("{}", entry.path().display()),
        Err(err) => println!("ERROR: {}", err),
    }
}

示例:高级

默认情况下,递归目录迭代器将忽略隐藏的文件和目录。可以通过使用 WalkBuilder 构建迭代器来禁用此功能

use ignore::WalkBuilder;

for result in WalkBuilder::new("./").hidden(false).build() {
    println!("{:?}", result);
}

有关 WalkBuilder 的更多选项,请参阅文档。

依赖项

~4–13MB
~132K SLoC