#递归 #文件搜索 #字体 #迭代器

bin+lib finder

递归查找具有过滤功能的文件夹中的文件

7 个版本

0.1.6 2020 年 9 月 5 日
0.1.5 2019 年 9 月 5 日
0.1.1 2019 年 8 月 22 日

1210文件系统


用于 libfonthelper

MIT 许可证

11KB
203

Finder

Codacy Badge Buy Me A Coffee donate button PayPal donate button

Crate finder 是一个非常简单且轻量级的文件搜索器,具有文件过滤功能。它提供了高效的递归文件搜索实现。

要使用此 crate,将 finder 添加到项目的 Cargo.toml 依赖项中

[dependencies]
finder = "0.1"

示例

以下代码递归搜索 /foo/bar 目录中的所有文件

extern crate finder;

use finder::Finder;

fn main() {
  let finders = Finder::new("/foo:/bar");
  for i in finders.into_iter() {
    println!("{}", i.path().to_str().unwrap());
  }
}

带有过滤器的示例

以下代码递归搜索 .ttf.ttc 文件,位于 /foo/bar 目录中

extern crate finder;

use std::fs::DirEntry;

use finder::Finder;

fn is_font_file(e: &DirEntry) -> bool {
  if let Some(s) = e.path().file_name() {
    let name = String::from(s.to_str().unwrap());

    if (name.ends_with(".ttf") || name.ends_with(".ttc")) {
      return true;
    }
  }

  false
}

fn main() {
  let finders = Finder::new("/foo:/bar");
  for i in finders.filter(&is_font_file).into_iter() {
    println!("{}", i.path().to_str().unwrap());
  }
}

依赖项

~87KB