#pattern-matching #folders #file #filename #find #search-pattern

file-matcher

基于名称模式(正则表达式、通配符、精确匹配)搜索文件和文件夹的库。

6 个版本 (破坏性更新)

0.7.0 2021年10月12日
0.6.0 2021年8月3日
0.5.0 2021年7月23日
0.4.0 2021年7月20日
0.2.4 2021年7月16日

#1019 in 文件系统

Download history · Rust 包仓库 149/week @ 2024-03-13 · Rust 包仓库 156/week @ 2024-03-20 · Rust 包仓库 49/week @ 2024-03-27 · Rust 包仓库 58/week @ 2024-04-03 · Rust 包仓库 64/week @ 2024-04-10 · Rust 包仓库 127/week @ 2024-04-17 · Rust 包仓库 91/week @ 2024-04-24 · Rust 包仓库 132/week @ 2024-05-01 · Rust 包仓库 71/week @ 2024-05-08 · Rust 包仓库 79/week @ 2024-05-15 · Rust 包仓库 59/week @ 2024-05-22 · Rust 包仓库 114/week @ 2024-05-29 · Rust 包仓库 117/week @ 2024-06-05 · Rust 包仓库 114/week @ 2024-06-12 · Rust 包仓库 105/week @ 2024-06-19 · Rust 包仓库 145/week @ 2024-06-26 · Rust 包仓库

每月494次下载

MIT 许可证

38KB
893 代码行

file-matcher

docs crate license

一个基于 Rust 的库,用于根据名称模式(正则表达式、通配符、精确匹配)搜索文件和文件夹。

功能

  • regex - 使用 Regex crate 添加正则表达式支持
  • wildmatch - 使用 Wildmatch crate 添加通配符匹配
  • copier - 允许用户复制声明的文件和文件夹,使用 fs_extra crate
  • mover - 允许用户移动声明的文件和文件夹,使用 fs_extra crate
  • serde - 允许用户序列化/反序列化声明的文件和文件夹过滤器,使用 serde

使用 FileNamed 根据名称模式搜索精确匹配的一个文件。如果没有找到或找到多个文件,则返回一个 Error

FileNamed::regex("cat.*")
    .within("tests/assets")
    .find()?

使用 FolderNamed 根据名称模式搜索精确匹配的一个文件夹。如果没有找到或找到多个文件夹,则返回一个 Error

FolderNamed::wildmatch("cat*")
    .within("tests/assets")
    .find()?

存在性

检查文件是否存在

FileNamed::wildmatch("cat*")
    .within("tests/assets")
    .exists()?

检查文件夹是否存在

FolderNamed::wildmatch("cat*")
    .within("tests/assets")
    .exists()?

复制

查找并复制与名称模式匹配的文件到同一目录下的 destination 文件夹

FileNamed::wildmatch("cat*")
    .within("tests/assets")
    .copy("destination")?

查找并复制与名称模式匹配的文件到 destination 文件夹,并命名为 kitty.txt

FileNamed::wildmatch("cat*")
    .within("tests/assets")
    .copy(Path::new("destination").join("kitty.txt"))?

或者,为复制/移动操作分配别名。以下操作将找到与给定模式名称匹配的文件,并将其复制到 destination 文件夹下的 kitty.txt 命名下

FileNamed::wildmatch("cat*")
    .alias("kitty.txt")
    .within("tests/assets")
    .copy("destination")?

依赖项

~0–700KB
~12K SLoC