# FastCopy **Repository Path**: dsguang/FastCopy ## Basic Information - **Project Name**: FastCopy - **Description**: 高速文件拷贝工具 - 智能SSD/HDD检测 多线程引擎 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-27 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastCopy 高速文件拷贝工具 - 智能SSD/HDD检测,多线程并行引擎 ## 功能特性 - **智能磁盘检测** - 自动识别SSD/HDD,动态调整最优线程数(SSD↔SSD 16线程,混合4线程,HDD↔HDD 2线程) - **多线程并行引擎** - 无锁任务队列 + InterlockedIncrement分发,充分利用磁盘吞吐 - **拷贝后校验** - 可选逐字节对比校验,确保数据完整性 - **智能文件排除** - 默认排除 `*.tmp` `*.log` `*.chk` `pagefile.sys` `hiberfil.sys` `swapfile.sys` 及 `$RECYCLE.BIN` `System Volume Information`,支持自定义通配符规则 - **目录/整盘拷贝** - 支持选择单个目录或整个磁盘作为源 - **实时日志** - UTF-16日志输出,记录拷贝/跳过/错误/校验失败的详细信息 - **Win11风格界面** - Fluent Design配色、Segoe UI Variable字体、大间距布局 ## 界面预览 ``` ┌─ FastCopy ──────────────────────────────────────┐ │ FastCopy │ │ 高速文件拷贝工具 │ │ │ │ 源路径 [________________________] [浏览] [选盘] │ │ 目标路径 [________________________] [浏览] [选盘] │ │ ──────────────────────────────────────────────── │ │ ☑ 拷贝后校验 ☐ 覆盖已有 线程 [16 ▾] │ │ [排除规则...] 日志 [______________] [...] │ │ ──────────────────────────────────────────────── │ │ ████████████████████░░░░░ 78% │ │ 78% | 文件: 1234 / 1580 | 目录: 89 | 已跳过: 42 │ │ 245.6 MB/s ← copying: bigfile.iso │ │ │ │ [开始拷贝] [取消] [关于] │ └──────────────────────────────────────────────────┘ ``` ## 编译 ### 方式一:直接编译(推荐) 安装 [MSYS2](https://www.msys2.org/) 后执行: ```bash pacman -S mingw-w64-ucrt-x86_64-gcc ``` 然后运行 `build.bat`,或手动编译: ```bash windres src/resource.rc --codepage=65001 -O coff -o build/resource.o gcc -O2 -Wall -municode -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0601 \ src/main.c src/gui.c src/copy_engine.c src/disk_detect.c build/resource.o \ -I src -lcomctl32 -lcomdlg32 -lshell32 -lole32 -lsetupapi \ -lkernel32 -luser32 -lgdi32 -ladvapi32 -mwindows -o FastCopy.exe ``` ### 方式二:CMake ```bash mkdir build && cd build cmake .. -G "MinGW Makefiles" cmake --build . --config Release ``` ## 使用 1. 双击 `FastCopy.exe` 运行 2. 选择源路径(点击"浏览"选目录,"选盘"选整个磁盘) 3. 选择目标路径 4. 可选:调整线程数、排除规则、日志路径 5. 点击"开始拷贝" ## 项目结构 ``` src/ ├── main.c # 程序入口 ├── gui.c / gui.h # Win32 GUI 界面 ├── copy_engine.c / .h # 多线程拷贝引擎 ├── disk_detect.c / .h # SSD/HDD 检测 ├── resource.rc # 对话框资源定义 ├── app.manifest # Win11 兼容性清单 ├── gen_icon.c # 图标生成工具 └── fastcopy.ico # 应用图标 (16/32/48/256) ``` ## 技术细节 | 模块 | 实现 | |------|------| | 磁盘检测 | TRIM属性 → SeekPenalty → NVMe总线类型,三级探测 | | 线程调度 | SSD↔SSD=16, 混合=4, HDD↔HDD=2 | | 文件拷贝 | `CopyFileExW` 系统API,内核级零拷贝优化 | | 任务分发 | `InterlockedIncrement` 无锁原子递增取任务 | | 文件排除 | 通配符匹配(`*` `?`),大小写不敏感;目录名和相对路径双重匹配 | | 数据校验 | 1MB缓冲区双源逐字节memcmp | | 日志输出 | 线程安全UTF-16写入,BOM头 | ## 作者 - 作者:阿光哥 - 邮箱:dsguang@outlook.com - 版本:1.0.0 ## 许可 MIT License