#directory #walk #glob #read-dir #filename

scan_dir

一个更简单的 read_dir 和递归目录遍历器,用于读取配置文件的目录

5个不稳定版本

使用旧的Rust 2015

0.3.3 2016年4月20日
0.3.2 2015年12月25日
0.3.1 2015年10月27日
0.2.0 2015年9月25日
0.1.0 2015年9月24日

#1497 in 文件系统

Download history 169/week @ 2024-03-11 127/week @ 2024-03-18 95/week @ 2024-03-25 173/week @ 2024-04-01 175/week @ 2024-04-08 267/week @ 2024-04-15 160/week @ 2024-04-22 155/week @ 2024-04-29 146/week @ 2024-05-06 130/week @ 2024-05-13 112/week @ 2024-05-20 197/week @ 2024-05-27 232/week @ 2024-06-03 106/week @ 2024-06-10 153/week @ 2024-06-17 156/week @ 2024-06-24

661 每月下载量
用于 6 crates

MIT/Apache

42KB
616

Scan Dir

状态测试版
文档http://tailhook.github.com/scan_dir/

简单的接口,用于遍历目录中的文件或子目录

功能

  1. 确保文件名可以解码为UTF-8(或错误/警告会传播)
  2. 忽略隐藏条目(默认行为)
  3. 忽略常见的文本编辑器和版本控制系统备份文件
  4. 只选择文件或只选择目录
  5. 更简单但足够详细的错误处理
  6. 递归目录扫描器

以下是一个示例

use scan_dir::ScanDir;

ScanDir::dirs().read(".", |iter| {
    for (entry, name) in iter {
        println!("File {:?} has full path {:?}", name, entry.path());
    }
}).unwrap()

与stdlib方式比较

use std::fs::read_dir;
for entry_res in read_dir(".").unwrap() {
    let entry = entry_res.unwrap();
    let file_name_buf = entry.file_name();
    let file_name = file_name_buf.to_str().unwrap();
    if !file_name.starts_with(".") &&
        entry.file_type().unwrap().is_dir()
    {
        println!("File {:?} has full path {:?}",
            file_name, entry.path());
    }
}

看起来几乎很完美,直到你想要将unwrap的转换成正确的错误报告。

升级

Thescan_dir0.3 默认在检查是文件还是目录之前解析符号链接。在scan_dir0.1-0.2 版本中,符号链接总是包含在列表中(即它们既没有被skip_files也没有被skip_dirs).

许可

许可方式如下

任选其一。

贡献

除非你明确声明,否则任何有意提交以包含在作品中的贡献,如Apache-2.0许可中定义的,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~47KB