2.9 KiB
2.9 KiB
📂 Directory Scanner (目录扫描器)
一款现代化、高性能的本地文件目录扫描工具,能够快速生成交互式的 HTML 结构报告。基于 Python + PyQt6 开发,采用 Win11 风格的无边框 UI 设计。
✨ 主要特性
- 🚀 极速扫描:采用多线程 (
concurrent.futures) +os.scandir技术,大幅提升大文件夹的扫描速度。 - 📊 可视化报告:
- 生成单文件 HTML 报告,易于分享。
- 双视图模式:支持传统的树形列表和矩形树图 (Treemap)(基于 ECharts),直观展示文件大小分布。
- 懒加载渲染:采用 Lazy Rendering 技术,轻松应对包含数十万文件的超大规模目录,网页打开秒开不卡顿。
- 智能搜索:HTML 报告内置全量搜索功能,支持自动定位和展开深层目录。
- 🎨 现代化 UI:
- PyQt6 构建的无边框窗口。
- 支持窗口阴影、自定义标题栏、拖拽移动。
- 自动识别文件类型并显示对应的 Emoji 图标。
- 📁 多目录支持:支持一次性添加多个文件夹进行批量扫描,生成汇总报告。
- 🛠️ 独立运行:支持打包为 EXE 可执行文件,无需 Python 环境即可运行。
🛠️ 技术栈
- GUI: Python 3, PyQt6
- Frontend: HTML5, CSS3, Vanilla JS, ECharts
- Performance: ThreadPoolExecutor, JSON Data Injection, DOM Fragmentation
📦 安装与运行
源码运行
- 克隆或下载本项目。
- 安装依赖:
pip install PyQt6 - 运行程序:
python dir_scanner_gui.py
打包为 EXE
如果你需要生成独立的可执行文件,可以使用 pyinstaller:
# 安装 PyInstaller
pip install pyinstaller
# 执行打包命令(自动添加图标和时间戳命名)
$name = "DirectoryScanner_" + (Get-Date -Format "yyyyMMdd_HHmmss")
pyinstaller --noconsole --onefile --icon="logo.png" --add-data "logo.png;." --name="$name" dir_scanner_gui.py
打包完成后,EXE 文件将生成在 dist 目录下。
🖥️ 使用说明
- 添加目录:点击界面上的
➕按钮选择一个或多个文件夹。 - 设置输出:默认会在当前目录下生成带时间戳的 HTML 报告,也可以手动修改保存路径。
- 开始扫描:点击“开始扫描”按钮,等待进度条完成。
- 查看报告:扫描完成后,可直接点击对话框中的“打开报告”查看结果。
📝 更新日志
- v1.2: 优化网页搜索功能,支持全量搜索与自动跳转;修复任务栏图标显示问题。
- v1.1: 新增 ECharts 矩形图视图;优化 HTML 生成逻辑(体积减小 90%);UI 细节打磨。
- v1.0: 初始版本,支持多线程扫描与 PyQt6 无边框界面。
Created by Trae AI Assistant