# 文件去重 **Repository Path**: xidear/file-deduplicator ## Basic Information - **Project Name**: 文件去重 - **Description**: No description available - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-26 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🗂️ File Deduplicator - 文件去重器 一个高效、智能的重复文件检测和清理工具,基于Tauri + Vue 3构建,支持Windows和Linux平台。 ## ✨ 主要特性 ### 🔍 **智能文件检测** - **多算法支持**: SHA256完整哈希、部分哈希、图像感知哈希 - **文件类型识别**: 自动识别图片、视频、音频、文档等 - **相似度聚类**: 智能分组相似文件,支持折叠/展开视图 ### 🖼️ **高性能预览系统** - **缩略图生成**: 自动生成256x256 WebP缩略图 - **懒加载优化**: 使用IntersectionObserver,DOM节点<200个 - **多格式支持**: JPG、PNG、GIF、BMP、WebP等图片格式 - **视频预览**: 支持多种视频格式预览 ### 🎯 **多种视图模式** - **列表视图**: 传统文件列表,支持排序和筛选 - **缩略图网格**: 直观的图片预览网格 - **聚类视图**: 按相似度分组的智能视图 ### 🛠️ **强大的文件操作** - **批量选择**: 智能选择规则,一键选择重复文件 - **安全删除**: 支持回收站和永久删除 - **文件移动**: 批量移动到指定目录 - **空文件夹清理**: 自动清理空目录 ### ⚡ **性能优化** - **缓存系统**: LRU缓存优化缩略图和哈希计算 - **虚拟滚动**: 大文件列表性能优化 - **并发处理**: 多线程文件扫描和哈希计算 ## 🚀 快速开始 ### 系统要求 - **Windows**: Windows 10/11 (64位) - **Linux**: Ubuntu 20.04+ / Debian 11+ / CentOS 8+ - **内存**: 最低4GB,推荐8GB+ - **存储**: 至少1GB可用空间 ### 下载安装 #### Windows版本 1. 下载最新版本的安装包: - MSI安装包: `File Deduplicator_1.0.0_x64_zh-CN.msi` - NSIS安装包: `File Deduplicator_1.0.0_x64-setup.exe` 2. 双击安装包,按提示完成安装 #### Linux版本 1. 下载AppImage文件: `file-deduplicator_1.0.0_amd64.AppImage` 2. 添加执行权限: `chmod +x file-deduplicator_1.0.0_amd64.AppImage` 3. 运行: `./file-deduplicator_1.0.0_amd64.AppImage` ### 从源码构建 #### 环境准备 ```bash # 安装Node.js 18+ # 安装Rust 1.70+ # 安装pnpm (推荐) 或 npm # 克隆项目 git clone https://gitee.com/xidear/file-deduplicator.git cd file-deduplicator ``` #### 安装依赖 ```bash # 安装前端依赖 npm install # 安装Rust依赖 cd src-tauri cargo build cd .. ``` #### 开发模式 ```bash # 启动开发服务器 npm run tauri dev ``` #### 构建发布版本 ```bash # Windows版本 npm run tauri build # Linux版本 (需要在Linux环境中) npm run tauri build ``` ## 📖 使用指南 ### 1. 选择扫描目录 - 点击"选择目录"按钮 - 选择要扫描的文件夹 - 支持多目录选择 ### 2. 配置扫描选项 - **文件类型过滤**: 选择要扫描的文件类型 - **大小限制**: 设置文件大小范围 - **深度控制**: 限制扫描子目录深度 ### 3. 开始扫描 - 点击"开始扫描"按钮 - 实时查看扫描进度 - 支持暂停和恢复 ### 4. 查看结果 - **列表视图**: 按文件组显示重复文件 - **缩略图视图**: 直观的图片预览 - **聚类视图**: 按相似度分组 ### 5. 选择和处理 - 使用智能选择规则 - 批量选择重复文件 - 执行删除、移动等操作 ## 🔧 高级功能 ### 智能选择规则 - **保留最新**: 自动保留最新修改的文件 - **保留最短路径**: 保留路径最短的文件 - **保留特定目录**: 优先保留指定目录中的文件 - **自定义规则**: 支持用户自定义选择逻辑 ### 缓存管理 - **缩略图缓存**: 自动缓存生成的缩略图 - **哈希缓存**: 缓存文件哈希值,避免重复计算 - **缓存清理**: 支持手动清理和自动过期 ### 相似度算法 - **图像感知哈希**: 检测视觉相似的图片 - **音频指纹**: 识别重复的音频文件 - **文档相似度**: 检测重复的文档内容 ## 🏗️ 技术架构 ### 前端技术栈 - **Vue 3**: 现代化的前端框架 - **TypeScript**: 类型安全的JavaScript - **Tailwind CSS**: 实用优先的CSS框架 - **Vite**: 快速的构建工具 ### 后端技术栈 - **Rust**: 高性能的系统编程语言 - **Tauri**: 跨平台桌面应用框架 - **图像处理**: 使用image和webp库 - **文件系统**: 原生文件操作API ### 性能优化 - **虚拟滚动**: 处理大量文件时的性能优化 - **懒加载**: 按需加载缩略图和预览 - **并发处理**: 多线程文件处理 - **内存管理**: 智能缓存和垃圾回收 ## 📁 项目结构 ``` file-deduplicator/ ├── src/ # 前端Vue源码 │ ├── components/ # Vue组件 │ ├── types/ # TypeScript类型定义 │ └── utils/ # 工具函数 ├── src-tauri/ # Rust后端源码 │ ├── src/ # Rust源代码 │ ├── Cargo.toml # Rust依赖配置 │ └── tauri.conf.json # Tauri应用配置 ├── .github/ # GitHub Actions配置 ├── dist/ # 构建输出目录 └── README.md # 项目说明文档 ``` ## 🚀 部署说明 ### 自动构建 项目配置了GitHub Actions,支持自动构建: - 推送到master分支自动触发构建 - 支持Windows、Linux、macOS多平台 - 自动生成安装包和发布版本 ### Docker构建 ```bash # 构建Linux版本 docker build -f Dockerfile.linux -t file-deduplicator-linux . ``` ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork项目 2. 创建功能分支: `git checkout -b feature/AmazingFeature` 3. 提交更改: `git commit -m 'Add some AmazingFeature'` 4. 推送分支: `git push origin feature/AmazingFeature` 5. 创建Pull Request ## 📄 许可证 本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - [Tauri](https://tauri.app/) - 跨平台桌面应用框架 - [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架 - [Rust](https://www.rust-lang.org/) - 系统编程语言 - [Tailwind CSS](https://tailwindcss.com/) - 实用优先的CSS框架 ## 📞 联系方式 - 项目主页: [GitHub Repository](https://github.com/your-username/file-deduplicator) - 问题反馈: [Issues](https://github.com/your-username/file-deduplicator/issues) - 功能建议: [Discussions](https://github.com/your-username/file-deduplicator/discussions) --- ⭐ 如果这个项目对你有帮助,请给它一个星标!