为了账号安全,请及时绑定邮箱和手机立即绑定

用 Rust 语言打造高效的文件整理工具

标签:
杂七杂八

管理混乱的下载文件夹是我们许多人经常遇到的问题。文件很快地堆积起来,很快地,重要的文档、图片和视频很快就会被淹没在大量无关或过时的下载文件中。想到这里,我着手开发一个既能自动整理文件又能保持轻量高效的工具。以下是我开发这个下载管理器的过程,我遇到的挑战以及从中获得的经验。

什么是下载管理器?

下载管理器 是一个基于 Rust 的应用程序,我用它来自动整理下载文件夹中的文件。它会监控新文件事件并等待文件稳定,然后将文件分类到如图片、视频、文档、归档、音频和其他等分类文件夹中。该工具专为 Windows 平台设计,旨在快速且节省资源地运行。

如何使用下载工具

1. 下载可执行程序

访问GitHub的发布页并下载预编译的可执行文件(下载管理器.exe,即downloadManager.exe)。

2. 在任务计划器中设置

为了保证这个工具在系统启动时能自动运行。

  1. 打开 任务计划程序 (按下 Win + R,输入 taskschd.msc,然后按回车键)。
  2. 在右侧点击 创建任务
  3. 常规 标签页中:
  • 为任务命名(例如,“下载组织者”)。

  • 选择 无论用户是否登录都运行

  • 选中 以最高权限运行

    1. 进入 触发器 标签页:
  • 点击 新建 并将触发器设置为 系统启动

  • 点击 确定

    1. 进入 操作 标签页:
  • 点击 新建

  • 操作 设置为 启动程序

  • 浏览到下载的 downloadManager.exe 文件并选择它。

  • 点击 确定

    1. 进入 条件 标签页:
  • 取消选中 仅在计算机接通交流电源时启动任务

  • 选中 唤醒计算机以运行任务
    1. 点击 确定 以保存任务。

该工具现在启动时会自动运行,并监控您的下载文件夹(Downloads文件夹)中的内容。

3. 手动运行游戏:

如果你更喜欢手动运行程序的话,只需双击 downloadManager.exe 文件就可以了。工具就会立即开始监控你的下载文件夹。

我遇到的问题以及解决办法

1. 管理临时文件

问题:许多浏览器,例如Chrome,在下载时会创建.tmp.crdownload这样的临时文件。如果我的工具过早处理这些文件,就会中断下载。

解决方案:我实现了一个文件稳定机制。程序会跳过.tmp.crdownload文件,直到它们被重命名。此外,我还会定期检查文件大小是否稳定,确保文件无误后再移动。

2. 监控资源使用

问题:文件监控可能会变得非常耗资源,尤其是在频繁的文件事件中,会占用大量的CPU和内存资源。

为解决这问题,我:

  • 使用了 Rust 的高效库如 notify 来进行文件事件监控。
  • 实现了性能测试来分析并优化 CPU 和内存的使用。内存使用稳定在约 13 MB,CPU 使用率在高峰时约为 0.77%,适合日常使用场景。

你知道吗?Rust 通常被称为“内存安全的语言”,因为它避免了常见的内存错误,比如空指针解引用和缓冲区溢出。

3. 跨文件兼容性

问题:文件格式多种多样。我需要确保几十种不同的扩展名能被正确归类。

解决方法:我做了一个广泛的文件扩展名列表,将它们对应到相应的类别,比如图片、视频和文档。对于不认识的文件扩展名,我用了一个默认的“其他”文件夹。这样系统就能应对未来出现的新文件类型。

4. 避免系统启动过程中的中断

遇到的问题是:当通过任务计划程序运行工具时,偶尔会出现一个终端窗口,影响了用户的使用体验。

解决办法:我重新编译了这个程序,使用 windows_subsystem = "windows" 标志,让工具在后台无声运行,不会显示终端窗口。

5. 保持用户友好性

问题在于:许多用户对命令行工具或复杂的安装过程不太习惯。

:我:答案是

  • 提供了可以直接从 GitHub 发布页面下载的预构建可执行文件。
  • 详细说明了如何在任务计划程序中配置工具以实现自动启动。
  • 添加了桌面通知,以告知用户文件的移动情况,使体验更加互动和透明。
基准测试

我测试了下载管理器应用,测试设备如下:

我在以下设备上测试了该下载管理器应用:

  • 设备名 : Lenovo IdeaPad Gaming 3i
  • 处理器 : 12 代 Intel(R) Core(TM) i5-12450H @ 2.00 GHz
  • 内存 : 32.0 GB
  • 操作系统 : Windows 11 家庭版,23H2 版

基准测试结果

  • CPU 使用:在监控文件时峰值约为 0.77%。
  • 内存使用:在常规操作中稳定在大约 13 MB。

见解

  • 该工具在后台运行高效,非常适合希望实现“设置后即可放手”的用户。它保持用户友好且轻量。
  • 即便在进行大量文件处理时,资源使用量也保持很低,这归功于 Rust 的高性能和对底层的精细控制。
类似项目的点子

如果你对这个项目感到受启发,这里有一些你可以亲自尝试的想法,试试看。

  1. 照片管理器
  • 自动根据日期、位置(通过使用EXIF数据)或事件名称对照片进行排序。
  1. 音乐库管理员
  • 按照艺术家、专辑或类型将音频文件分类。
  1. 文档数字化器
  • 监控扫描后的文档,并根据OCR识别的内容自动重命名和移动这些文档。
  1. 视频压缩工具
  • 监控视频文件夹里的内容,并自动压缩大文件来节省磁盘空间。
  1. 跨平台文件管理器
  • 将文件管理器的概念扩展支持 Linux 和 macOS。
最后的感想

下载管理器项目既是一次充满挑战也令人感到满足的经历。它让我明白了处理临时文件等边缘情况的重要性,以及如何优化以降低资源消耗。最重要的是,它让我再次体会到自动化的力量,能够让生活变得更简单和高效。

我希望这个工具能让你的Downloads文件夹保持整洁。非常期待听到你的反馈和想法!如果你想贡献或提出功能建议的话,请访问我们的[GitHub仓库(Downloads-Organizer,下载整理工具)]!

GitHub logo Joeljaison391 / 下载整理器

一个用 Rust 编写的程序,旨在自动化管理您的下载文件。它会监控新文件的出现,并根据文件扩展名将它们移动到相应的文件夹中,让文件管理更简单,并提高工作效率。

下载工具
概述

一款基于 Rust 的轻量级文件监控和整理工具,设计用于自动将下载的文件根据类型分类到相应的文件夹中。该程序监控 下载(Downloads) 文件夹中的文件变动,并将其归类到如图片、视频、文档、压缩文件、音频及其他等类别文件夹中。

特点
  • 监控下载文件夹中的新文件。
  • 忽略临时文件和部分下载的文件(例如 .tmp, .crdownload)。
  • 在文件稳定后再进行处理。
  • 将文件分类到相应的子文件夹。
  • 成功组织文件后发送桌面通知。
  • 记录错误和处理详情以便调试。
  • 高效使用资源。
支持的文件类型

分类如下:

  1. 图片:
  • .jpg, .png, .gif, .bmp, .tiff, .svg, .webp

    1. 视频:
  • .mp4, .mkv, .avi, .mov, .flv, .wmv, .webm, .mpeg

    1. 文档:
  • .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .csv

    1. 归档文件:

查看 GitHub 上的 Downloads-Organizer

随便在下面留下你的评论或想法。祝你编程开心!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消