Skip to content

Repository files navigation

🔍 空间透视 - 专业的磁盘空间分析工具

Version Platform Size License Stars

现代化的磁盘空间管理工具,帮助你快速找到占用空间的大文件和目录

特性安装使用更新日志


✨ 核心特性

🎨 现代化界面

  • 直观的可视化 - 左右分屏布局,气泡图展示空间占用
  • 精美的设计 - 深紫色渐变背景 + 磨砂玻璃效果
  • 流畅动画 - 悬停缩放、选中发光效果

⚡ 性能优化

  • 智能过滤 - 自动跳过 node_modules、.git 等冗余目录,速度提升 3-5 倍
  • 动态线程池 - 根据 CPU 核心数自动优化并行度
  • 优先级扫描 - Downloads、Documents 等常用目录优先显示
  • Rayon 并行扫描 - 多核 CPU 并行计算
  • 智能缓存 - 24 小时缓存,预缓存前 5 个最大目录
  • 流畅体验 - 异步非阻塞,UI 永不卡顿

🎯 专项扫描(新功能)

  • 大文件扫描 - 快速定位 > 100MB 的文件
  • 旧文件扫描 - 清理 30 天以上未修改的文件
  • 重复文件扫描 - 通过部分哈希识别重复文件

🔒 权限管理

  • 首次启动引导 - 自动显示 4 步权限设置说明
  • 一键跳转 - 直接打开系统设置页面
  • 帮助按钮 - 右上角"?"随时查看引导

🗑️ 安全删除

  • 移到废纸篓 - 使用 macOS Finder API
  • 删除历史 - 自动记录删除操作,可追溯
  • 可恢复 - 误删可从废纸篓恢复
  • 友好提示 - 显示选中数量和大小

🛡️ 稳定性保障

  • 错误分类 - 细化权限、路径、I/O 错误提示
  • 硬链接去重 - 通过 inode 避免重复统计
  • 缓存校验 - 24 小时自动过期

🚀 快速开始

系统要求

  • macOS 10.15 (Catalina) 或更高版本
  • 支持 Apple Silicon (M1/M2/M3) 和 Intel 芯片

安装

方法 1: 下载 DMG(推荐)

Releases 下载对应版本:

  • Apple Silicon (M1/M2/M3): CleanDir-v1.4.0-macOS-aarch64.dmg
  • Intel: CleanDir-v1.4.0-macOS-x86_64.dmg
  • 通用版本: CleanDir-v1.4.0-macOS-universal.dmg (同时支持 Apple Silicon 和 Intel)

方法 2: 从源码构建

# 克隆项目
git clone https://github.com/cxapython/CleanDir.git
cd CleanDir

# 安装依赖
npm install

# 开发模式
npm run tauri dev

# 构建 DMG
npm run tauri build

首次使用

  1. 打开应用 - 会自动显示权限引导
  2. 点击"打开系统设置" - 自动跳转
  3. 添加权限:
    • 系统设置 → 隐私与安全性
    • 完全磁盘访问权限
    • 添加"空间透视.app"
  4. 重启应用 - 完成设置

基本操作

  • 选择目录: 点击"选择目录"按钮或使用快捷按钮 (根目录/Users/我的)
  • 选择扫描模式:
    • ⚡ 快速扫描 (默认)
    • 📦 大文件扫描 (可设置大小阈值)
    • 📅 旧文件扫描 (可设置天数阈值)
    • 🔄 重复文件扫描
  • 开始扫描: 点击"🔄 扫描"按钮
  • 查看结果: 左侧列表 + 右侧气泡可视化
  • 进入子目录: 双击文件夹
  • 删除文件: 选中后点击"🗑️ 删除"
  • 查看删除历史: 点击右上角 🗑️ 图标

📊 技术架构

技术栈

  • 前端: React 18 + Vite + Tailwind CSS
  • 后端: Rust + Tauri 1.5
  • 并行计算: Rayon
  • 文件系统: walkdir
  • 打包: DMG (2.6 MB)

核心依赖

[dependencies]
tauri = "1.5"
serde = "1.0"
rayon = "1.8"      # 并行计算
walkdir = "2.4"    # 文件遍历
regex = "1.10"     # 智能过滤
num_cpus = "1.16"  # CPU 检测

🎯 产品优势

  • 开源免费 - MIT 许可证,完全免费使用
  • 轻量高效 - 仅 2.6MB,启动快速,扫描速度提升 30-50%
  • 现代技术栈 - Tauri + React + Rust 构建
  • 安全可靠 - 删除的文件移到废纸篓,可恢复
  • 隐私保护 - 本地运行,不上传任何数据
  • 多架构支持 - 同时支持 Apple Silicon 和 Intel

💡 使用技巧

推荐工作流

  1. 日常清理: 使用"快速扫描" → 智能过滤自动跳过开发目录
  2. 深度清理: 使用"大文件扫描" (阈值 500MB) → 找出大视频和镜像文件
  3. 定期维护: 使用"旧文件扫描" (90 天) → 清理下载目录和文档
  4. 空间优化: 使用"重复文件扫描" → 删除重复的照片和文件

推荐扫描目录

  • ~/Downloads - 下载文件
  • ~/Library/Caches - 应用缓存
  • ~/Documents - 文档目录
  • ~/Movies - 视频文件

安全删除建议

可以删除:

  • ✅ 旧的下载文件
  • ✅ 应用缓存
  • ✅ 重复文件
  • ✅ 临时文件

不要删除:

  • /System - 系统文件
  • /Library - 系统库
  • ~/Library/Preferences - 应用设置
  • ⛔ 正在使用的文件

恢复误删文件

# 打开废纸篓
open ~/.Trash

# 右键文件 → "放回原处"

或者在应用中点击右上角 🗑️ 查看删除历史。


🐛 常见问题

Q: 仍然频繁弹出权限请求?

A: 需要授予"完全磁盘访问权限"

  1. 系统设置 → 隐私与安全性
  2. 完全磁盘访问权限
  3. 添加"空间透视.app"
  4. 重启应用

Q: 无法打开应用(来自身份不明的开发者)?

A:

sudo xattr -r -d com.apple.quarantine /Applications/空间透视.app

Q: 扫描很慢?

A:

  • 使用"快速模式"(默认)
  • 启用智能过滤(默认开启)
  • 不要扫描整个磁盘
  • 针对具体目录扫描

Q: 删除的文件在哪?

A: 在废纸篓中(~/.Trash/),可以恢复。点击右上角 🗑️ 查看删除历史。

Q: 为什么有些目录显示 ⚠️ 无权限访问?

A: 某些系统目录需要完全磁盘访问权限。如果已授权仍有问题,尝试:

  1. 移除并重新添加权限
  2. 重启应用

🔄 重新构建

开发环境

# 安装依赖
npm install

# 开发模式
npm run tauri dev

# 构建 DMG (当前架构)
npm run tauri build

# 构建通用版本 (Apple Silicon + Intel)
./build-universal.sh

构建要求

  • Node.js 16+
  • Rust 1.70+
  • Xcode Command Line Tools

📝 项目结构

CleanDir/
├── src/                      # React 前端
│   ├── App.jsx              # 主界面(气泡视图 + 扫描模式)
│   ├── PermissionGuide.jsx  # 权限引导
│   └── index.css            # 样式
├── src-tauri/               # Rust 后端
│   ├── src/main.rs          # 核心逻辑(优化后 793 行)
│   ├── Cargo.toml           # Rust 配置
│   └── tauri.conf.json      # Tauri 配置
├── package.json             # Node 依赖
└── README.md                # 本文件

📄 许可证

MIT License - 自由使用和修改


🎉 版本历史

v1.4.0 (2024-11-24) - 全方位优化升级 🚀

⚡ 性能优化 (扫描速度提升 30-50%)

  • 🚀 智能过滤规则: 默认跳过 node_modules、.git 等 13 种冗余目录,包含 node_modules 的项目扫描速度提升 3-5 倍
  • 🔧 动态线程池: 根据 CPU 核心数自动调整并行度 (SSD: 1.5x, HDD: 0.5x)
  • 🎯 优先级扫描: Downloads/Documents 等常用目录优先显示,减少等待感知时间 40-60%
  • 📉 内存优化: 扫描 10GB 目录内存占用从 120MB 降至 85MB (-29%)

🎨 用户体验优化

  • ⏱️ 进度增强: 显示剩余时间预估 (基于实时速度) 和已耗时
  • 🔐 权限优化: 超时保护 (3秒) 和悬浮提示,避免阻塞
  • 🎨 错误可视化: 文件列表中显示 ⚠️ 图标和错误详情

🎯 新功能

  • 📦 大文件扫描: 快速定位 > 100MB 的文件 (可自定义阈值)
  • 📅 旧文件扫描: 清理 30 天以上未修改的文件 (可自定义天数)
  • 🔄 重复文件扫描: 通过"大小 + 部分哈希"识别重复文件
  • 🗑️ 删除历史: 自动记录删除操作 (最多 100 条),可追溯和查看

🛡️ 稳定性提升

  • ⚠️ 错误分类: 细化权限/路径/磁盘 I/O 错误提示
  • 缓存校验: 24 小时自动过期,避免过期数据
  • 🔗 硬链接去重: 通过 inode 避免重复统计 (Time Machine 备份统计更准确)

🏗️ 架构改进

  • 新增依赖: regex (智能过滤), lazy_static (静态变量), num_cpus (CPU 检测)
  • 代码优化: Rust 后端从 175 行扩展至 793 行,增加了 618 行核心功能代码

📊 性能对比

测试场景 v1.3.0 v1.4.0 提升
含 node_modules 的项目 45 秒 12 秒 ↑ 73%
Downloads (1000 文件) 3.2 秒 2.1 秒 ↑ 34%
内存占用 (10GB 目录) 120MB 85MB ↓ 29%

v1.3.0 (2024-11-20)

  • 🚀 Rayon 并行计算 - 多核并行扫描,速度提升 5-8 倍
  • 📊 真实进度推送 - 后端实时推送扫描进度到前端
  • ⚡️ 智能预缓存 - 自动缓存前 5 个最大目录
  • 🎯 精准大小计算 - 修复 walkdir 单线程问题
  • 🔧 IPC 优化 - 每 3 项或 100ms 发送一次

v1.2.0

  • ✅ 安全删除(移到废纸篓)
  • ✅ 权限引导(首次启动)
  • ✅ 气泡可视化界面
  • ✅ 快速扫描模式

v1.1.0

  • ✅ 气泡可视化
  • ✅ 性能优化

v1.0.0

  • ✅ 基础功能
  • ✅ 列表视图

🤝 贡献

欢迎提交 Issue 和 Pull Request!

开发指南

# 克隆项目
git clone https://github.com/cxapython/CleanDir.git
cd CleanDir

# 安装依赖
npm install

# 开发模式
npm run tauri dev

# 构建
npm run tauri build

# 构建通用版本
./build-universal.sh

📮 联系方式

有问题或建议?欢迎通过以下方式联系:


⭐ Star History

如果这个项目对你有帮助,请给我们一个 Star ⭐️


让磁盘空间管理变得简单高效! 🎊✨

About

空间透视功能的实现,清理mac中的大文件

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages