一个用 SwiftUI 构建的 macOS 文件管理器,风格类似 Finder,支持树形侧边栏、面包屑导航、多选、内联重命名等功能。
| Finder | FinderExplorer | |
|---|---|---|
| 地址栏 | 右键 Option 才能看到路径,复制不方便 | 点击空白即切换为可编辑路径,自动全选,一键复制 |
| 目录树 | 侧边栏仅收藏夹,无完整目录树 | 完整目录树,根节点直达 /、/Users、/Applications |
| 排序 | 分组 + 排序混合,不可按列头切换 | 四列表格,点击列头一键切换排序方向和字段 |
| 键盘操作 | 仅 Enter 打开、Space 预览 | 全键盘:↑↓ 导航、Enter 打开、Backspace 返回上级、F2 重命名 |
| 多列信息 | 需切换为列表视图,且不显示类型 | 名称、日期、类型、大小四列同时可见 |
| 右键菜单 | 服务菜单分散、无废纸篓 | 集中管理:打开、重命名、Finder 中显示、复制路径、废纸篓 |
| 目录刷新 | 有时不自动刷新 | 文件系统事件驱动,自动刷新 |
| 跨平台潜力 | macOS 专属 | SwiftUI 跨平台架构,未来可移植 |
- 侧边栏目录树 — 异步加载,支持展开/折叠子文件夹
- 可编辑地址栏 — 点击空白区域切换为文本输入,自动全选,支持复制/粘贴路径,Enter 导航、Esc 取消
- 文件列表 — 名称/修改日期/类型/大小四列,支持点击列头排序
- 搜索过滤 — 实时搜索当前目录下的文件
- 右键菜单 — 打开、重命名、在 Finder 中显示、复制路径、移到废纸篓
- 键盘导航 — 上下箭头选择、回车打开、Backspace 返回上级、F2 重命名
- 多选 — ⌘ Command 追加 / ⇧ Shift 范围选择
- 内联重命名 — 在列表中直接编辑文件名
- 新建文件夹 — 快捷创建并自动选中
- 复制/剪切/粘贴 — ⌘C 复制 / ⌘X 剪切 / ⌘V 粘贴,行为与 Windows 一致:复制可连续粘贴到多个目录,剪切粘贴后清空;同名自动加「副本」后缀;被剪切的文件半透明显示
- 隐藏文件切换 — ⌘⇧. 快捷键(与系统通用快捷键一致)或右键菜单切换
- 删除确认 — 移到废纸篓前弹窗确认,防止误删
- 地址栏支持~ — 输入
~/Downloads等路径自动展开为用户主目录 - 前进/后退 — 导航历史栈,工具栏按钮操作
- 废纸篓 — 菜单命令 + ⌫ Delete 快捷键
- 目录自动刷新 — 外部文件新增/删除时列表自动更新
- 关于窗口 — 显示版本号、作者和项目主页链接
- 版本管理 — AppVersion.swift 统一版本号,窗口标题和打包产物自动同步
从 Releases 下载预编译版本,选择对应架构:
| 下载 | 架构 | 适用 |
|---|---|---|
| FinderExplorer_1.2.0-universal.dmg | Universal (arm64 + x86_64) | 推荐,不确定芯片选这个 |
| FinderExplorer_1.2.0-arm64.dmg | arm64 | Apple Silicon (M1/M2/M3/M4) |
| FinderExplorer_1.2.0-amd64.dmg | x86_64 | Intel Mac |
查看芯片类型:点左上角 → "关于本机" → 看"芯片"一行。
下载后双击打开 .dmg,把 FinderExplorer.app 拖入 Applications 快捷方式即可安装。
- macOS 14.0 (Sonoma) 或更高版本
./build_and_run.shswift build --disable-sandbox
open .build/x86_64-apple-macosx/debug/FinderExplorer./package_app.sh脚本会构建 x86_64 / arm64 / Universal 三个架构,并打包成 dmg 安装镜像(内含 Applications 快捷方式,拖拽即装):
FinderExplorer_<版本>-amd64.dmg
FinderExplorer_<版本>-arm64.dmg
FinderExplorer_<版本>-universal.dmg
同时在本地保留一份 FinderExplorer.app(Universal)可直接运行。版本号自动从 AppVersion.swift 读取。
FinderExplorer/
├── Package.swift # Swift Package Manager 配置
├── build_and_run.sh # Debug 构建 + 启动
├── package_app.sh # Release 打包 dmg(三架构)
├── generate_icon.swift # 用代码生成 App 图标
└── Sources/FinderExplorer/
├── AppVersion.swift # 版本号定义
├── FinderExplorerApp.swift # 入口 + 主窗口
├── Models/
│ ├── FileItem.swift # 文件/文件夹数据模型
│ ├── SortOptions.swift # 排序选项与方向
│ └── TreeNode.swift # 侧边栏树节点(异步)
├── Services/
│ ├── FileSystemService.swift # 文件操作服务层
│ └── NavigationState.swift # 前进/后退导航栈
└── Views/
├── MainContentView.swift # 主区域整合
├── BreadcrumbBar.swift # 面包屑地址栏
├── FileListView.swift # 文件列表 + 右键菜单
└── SidebarTreeView.swift # 侧边栏目录树
- SwiftUI — 原生声明式 UI
- AppKit —
NSWorkspace获取文件图标、NSEvent键盘监听 - SF Symbols — 系统图标
- Swift 6.0 — 结构化并发 (
async/await)、@MainActor
MIT
