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 文件系统
每月494次下载
38KB
893 代码行
file-matcher
一个基于 Rust 的库,用于根据名称模式(正则表达式、通配符、精确匹配)搜索文件和文件夹。
功能
regex
- 使用 Regex crate 添加正则表达式支持wildmatch
- 使用 Wildmatch crate 添加通配符匹配copier
- 允许用户复制声明的文件和文件夹,使用 fs_extra cratemover
- 允许用户移动声明的文件和文件夹,使用 fs_extra crateserde
- 允许用户序列化/反序列化声明的文件和文件夹过滤器,使用 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