#diff #directory #changed #compare #list #folder #recursively

folder_compare

比较两个文件夹,并获取变更和新增文件的列表

6 个版本 (3 个重大更改)

0.4.0 2020年9月17日
0.3.0 2020年5月30日
0.2.0 2020年5月22日
0.1.2 2020年5月20日

解析工具 中排名 335

Download history 97/week @ 2024-04-01 22/week @ 2024-04-08 63/week @ 2024-04-15 4/week @ 2024-04-22 8/week @ 2024-04-29 44/week @ 2024-05-06 31/week @ 2024-05-13 1/week @ 2024-05-20 17/week @ 2024-05-27 34/week @ 2024-06-03 57/week @ 2024-06-10 16/week @ 2024-06-17 4/week @ 2024-06-24 33/week @ 2024-07-01 2/week @ 2024-07-08 34/week @ 2024-07-15

每月下载量 74 次
用于 git-wire

Apache-2.0 协议

7KB
81 代码行

folder_compare

一个库,用于递归比较两个文件夹中的文件,并返回两个文件列表:一个包含第一个文件夹的独有文件,另一个包含两个文件夹之间变更的文件列表。

folder_compare 还接受一个使用 RegexSet 作为排除模式的字符串列表。

整体功能类似于在类 Unix 系统上执行 diff -rq folder1 folder2 -X excludepatterns.pat

为了识别变更文件,使用 FxHasher 进行哈希。

Apache-2.0 协议下授权

用法

folder_compare 添加到项目 Cargo.toml 中的依赖项

[dependencies]
folder_compare = "0.3"

示例

以下代码递归遍历两个目录,并返回变更和新增文件的列表,排除包含 ".doc" 和 ".txt" 的文件名/路径。

use std::path::Path;
use folder_compare;

let excluded = vec![".doc".to_string(), ".txt".to_string()];
let result = FolderCompare::new(Path::new("/tmp/a"), Path::new("/tmp/b"), &excluded).unwrap();

let changed_files = result.changed_files;
let new_filed = result.new_files;

依赖项

~2–10MB
~94K SLoC