Files
Directory-Scanner/README.md

70 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📂 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*