【开源项目】Rust开发复制文件夹目录结构工具

说明

项目简介

这个项目通过复制文件目录结构、查找非空文件和对比目录结构差异,为用户提供了一个高效、便捷的文件管理工具,适用于数据迁移、远程查询和版本控制等多种场景

  • 快速定位:通过复制目录结构和识别非空文件,用户可以快速定位到所需文件的位置,减少寻找文件的时间,提高工作效率。可以使用Everything等工具快速查找文件,提高效率和管理便捷性

  • 节省存储空间:由于仅复制目录结构而不是实际文件内容,可以在不占用大量存储空间的情况下,轻松管理和查看大容量硬盘上的文件目录。源文件可以存放在服务器、NAS、网盘或大容量硬盘等设备中

  • 远程存储查询:通过将目录结构存储在便携设备中,比如U盘等,可以随时随地查询远程服务器或大容量硬盘上的文件情况,方便进行远程管理和操作

  • 新增文件同步:当在复制的文件夹中添加新的非空文件时,可以扫描复制的文件夹,找出这些非空文件,从而将其同步复制到源文件夹中,确保数据一致性

  • 变更文件识别:在复制文件夹中删除或添加文件后,可以扫描出新增和删除的文件路径,便于识别和管理目录结构的变化。这样可以有效地同步和备份目录,确保文件的完整性和一致性

  • 版本控制:通过定期对比源文件夹和复制文件夹的结构差异,可以有效地进行版本控制,跟踪文件的新增和删除情况

实际应用

使用OpenCASCADE源码的文件夹OpenCASCADE-7.7.0-vc14-64用来测试

复制文件夹中创建104529个文件耗时47.35s

plaintext 复制代码
folder_cloner-v0.1.0-x86_64-pc-windows-msvc.exe --src-folder=D:\OpenCASCADE-7.7.0-vc14-64 --dst-folder=C:\Users\sywq6\Downloads\test
Number of files: 104529
Number of directories: 2203
Elapsed time: 47.35s

在复制文件夹中新增一个非空文件,104530个文件中扫描非空文件,耗时6.74s

plaintext 复制代码
Number of non-empty files: 1
Non-empty files list written to: C:\Users\sywq6\Downloads\non_empty_files.txt
Time taken to write non-empty files to txt: 6.74s

non_empty_files.txt为非空文件结果

plaintext 复制代码
C:\Users\sywq6\Downloads\test\NewFile.txt

在复制文件夹中新增一个文件,并且删除文件"test\vtk-6.1.0-vc14-64\lib\vtk.jar",对比源文件夹和复制文件夹,耗时738.83ms

plaintext 复制代码
Number of added files: 1
Number of removed files: 1
Differences written to: C:\Users\sywq6\Downloads\directory_differences.txt
Time taken to compare folders: 735.96ms

directory_differences.txt为对比结果

plaintext 复制代码
Added files:
NewFile.txt

Removed files:
vtk-6.1.0-vc14-64\lib\vtk.jar
相关推荐
Thneonl11 小时前
一个人从 Rust 内核做到 React 前端:我做了一个云原生 SRE 巡检图谱桌面工具
rust
程序员爱钓鱼11 小时前
Rust Struct结构体详解:定义自己的复杂数据类型
后端·面试·rust
苏灿烤鱼13 小时前
公司**不可计算,就自己做操作系统
rust·typescript·agent
nnerddboy15 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
咸甜适中16 小时前
rust语言AI编程学习笔记(五)clap命令行参数解析
学习·rust·ai编程
梦醒沉醉16 小时前
19、Rust程序设计语言——高级特性
rust
SomeB1oody18 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
DLYSB_19 小时前
Kafka 消费倾斜死锁与 Partition 掉队:我用 Rust 写了个“数据管道物理哨兵”,比 Grafana 报警快了 18 秒
rust·kafka·grafana·报警灯
SomeB1oody19 小时前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
SomeB1oody21 小时前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程