#glob #fnmatch #find #wildmatch

filenamegen

Shell风格的文件名生成,即globbing

7个版本

0.2.6 2024年5月13日
0.2.5 2024年5月13日
0.2.4 2020年4月14日

#143 in 文件系统

Download history 1920/week @ 2024-04-29 1297/week @ 2024-05-06 1706/week @ 2024-05-13 1090/week @ 2024-05-20 875/week @ 2024-05-27 1066/week @ 2024-06-03 1142/week @ 2024-06-10 841/week @ 2024-06-17 774/week @ 2024-06-24 744/week @ 2024-07-01 1227/week @ 2024-07-08 1213/week @ 2024-07-15 930/week @ 2024-07-22 897/week @ 2024-07-29 919/week @ 2024-08-05 1314/week @ 2024-08-12

4,255 每月下载量
5 个Crates中使用 (via wezterm-ssh)

MIT 协议

35KB
808 代码行

filenamegen

文件名生成,即Globbing。

此包实现了Shell风格的文件名生成,即:globbing。提供的globber可以相对于指定的目录(或仅当前工作目录)展开glob。 filenamegen 尝试避免遍历不会匹配glob的路径,以减少对底层文件系统的压力。

以下是一个简单的示例,递归地查找当前目录下的所有Rust源文件。

use filenamegen::Glob;

fn main() -> anyhow::Result<()> {
  let glob = Glob::new("**/*.rs")?;
  for path in glob.walk(std::env::current_dir()?) {
    println!("{}", path.display());
  }
  Ok(())
}

许可证:MIT


lib.rs:

文件名生成,即Globbing。

此包实现了Shell风格的文件名生成,即:globbing。提供的globber可以相对于指定的目录(或仅当前工作目录)展开glob。 filenamegen 尝试避免遍历不会匹配glob的路径,以减少对底层文件系统的压力。

以下是一个简单的示例,递归地查找当前目录下的所有Rust源文件。

use filenamegen::Glob;

fn main() -> anyhow::Result<()> {
  let glob = Glob::new("**/*.rs")?;
  for path in glob.walk(std::env::current_dir()?) {
    println!("{}", path.display());
  }
  Ok(())
}

依赖项

~3–11MB
~103K SLoC