70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# 📂 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
|
||
|
||
## 📦 安装与运行
|
||
|
||
### 源码运行
|
||
|
||
1. 克隆或下载本项目。
|
||
2. 安装依赖:
|
||
```bash
|
||
pip install PyQt6
|
||
```
|
||
3. 运行程序:
|
||
```bash
|
||
python dir_scanner_gui.py
|
||
```
|
||
|
||
### 打包为 EXE
|
||
|
||
如果你需要生成独立的可执行文件,可以使用 `pyinstaller`:
|
||
|
||
```powershell
|
||
# 安装 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` 目录下。
|
||
|
||
## 🖥️ 使用说明
|
||
|
||
1. **添加目录**:点击界面上的 `➕` 按钮选择一个或多个文件夹。
|
||
2. **设置输出**:默认会在当前目录下生成带时间戳的 HTML 报告,也可以手动修改保存路径。
|
||
3. **开始扫描**:点击“开始扫描”按钮,等待进度条完成。
|
||
4. **查看报告**:扫描完成后,可直接点击对话框中的“打开报告”查看结果。
|
||
|
||
## 📝 更新日志
|
||
|
||
* **v1.2**: 优化网页搜索功能,支持全量搜索与自动跳转;修复任务栏图标显示问题。
|
||
* **v1.1**: 新增 ECharts 矩形图视图;优化 HTML 生成逻辑(体积减小 90%);UI 细节打磨。
|
||
* **v1.0**: 初始版本,支持多线程扫描与 PyQt6 无边框界面。
|
||
|
||
---
|
||
*Created by Trae AI Assistant*
|