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 文件系统
661 每月下载量
用于 6 crates
42KB
616 行
Scan Dir
状态 | 测试版 |
---|---|
文档 | http://tailhook.github.com/scan_dir/ |
简单的接口,用于遍历目录中的文件或子目录
功能
- 确保文件名可以解码为UTF-8(或错误/警告会传播)
- 忽略隐藏条目(默认行为)
- 忽略常见的文本编辑器和版本控制系统备份文件
- 只选择文件或只选择目录
- 更简单但足够详细的错误处理
- 递归目录扫描器
以下是一个示例
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 License,版本2.0,(./LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(./LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,如Apache-2.0许可中定义的,应按上述方式双许可,不附加任何额外条款或条件。
依赖关系
~47KB