#directory #file-metadata #recursion #file #async #file-format

dir-meta

读取目录并获取读取操作中的所有文件和错误

8 个不稳定版本 (3 个破坏性更新)

0.5.3 2024年1月4日
0.5.2 2023年12月30日
0.4.1 2023年12月14日
0.3.1 2023年11月22日
0.2.0 2023年11月22日

文件系统 中排名第 622

Download history 21/week @ 2024-03-09 4/week @ 2024-03-16 44/week @ 2024-03-30 9/week @ 2024-04-06

每月下载量 79

Apache-2.0

32KB
477

FsMeta

crates.io DocsRust 此 crate 提供了以异步方式遍历目录的能力。结果是目录的元数据,目前包括

  • 获取目录的总大小(字节数)
  • 获取文件大小
  • 以人类可读的格式(B、KiB、MiB 等)格式化文件和目录大小
  • 获取所有目录
  • 获取所有文件
  • 获取创建、评估和修改时间戳(Tai64N,单调,无闰秒)
  • 获取创建、评估和修改时间戳(本地时间,24小时/12小时格式)
  • 根据持续时间格式化时间戳
  • 获取文件格式,例如 PDF 或纯文本
  • 返回当前目录中的所有文件和目录以及发生的任何错误,而不仅仅是当遇到错误时返回错误(如 fs::read_dir()
  • 在适用的情况下使用并行性(待办事项)

示例

[dependencies] 
dir-meta = {version = "*", default-features = false} #deactivate methods for converting timestamps to human readable formats in local time setting `default-features` to `false`
smol::block_on(async {
            // Read a directory
            let outcome = dir_meta::DirMetadata::new("src").dir_metadata().await.unwrap();

            dbg!(&outcome);

            // Get size of directory formatted as human readable
            dbg!(outcome.size_formatted());

            // Iterate over the files
            
            for file in outcome.files() {
                dbg!(&file.name()); //Get file name
                dbg!(&file.accessed_24hr()); // Get last accessed time in 24 hour format
                dbg!(file.accessed_am_pm()); //Get last accessed time in 12 hour format
                dbg!(&file.accessed_humatime()); //Get last accessed time based on duration since current time
                dbg!(&file.created_24hr());  //Get last created time in 24 hour format
                dbg!(&file.created_am_pm()); //Get last created time in 24 hour format
                dbg!(&file.created_humatime()); //Get last created time based on duration since current time
                dbg!(&file.modified_24hr()); //Get last modified time in 24 hour format
                dbg!(&file.modified_am_pm()); //Get last modified time in 24 hour format
                dbg!(&file.modified_humatime()); //Get last modified time based on duration since current time
                dbg!(file.formatted_size()); // Get the size of the file in human formatted size 
                dbg!(file.file_format()); // Get the format of the file eg (PDF)
            }
            
        })
许可证

代码受 Apache-2.0 许可证许可

行为准则

所有贡献都必须遵守 Rust 基金会 Rust 行为准则中的规则

依赖项

~4–14MB
~171K SLoC