在 Mac 上能长期用下去的目录结构,主轴是日期:年份一层,月份一层,日期或事件 一层。再加一条文件命名规则、一个无日期目录、一条外接硬盘规则,剩下的都是细节。
这篇教程给出一套可以用十年的结构,需要做决定的地方,以及怎样在不乱猜的前提下 迁移已有存档。

为什么目录结构仍然重要
文件夹树是所有应用都能读的索引。它经得起换应用、换硬盘、换电脑。Finder、 终端、备份工具,以及你以后尝试的任何照片应用,都能直接使用。
结构太聪明,会变成第二份工作。结构太扁平,到五万个文件就没法用。目标是无聊、 可预测。
三个维度
每个照片存档都要回答三件事:
- 什么时候: 拍摄日期。每台相机都会记录。
- 在哪或是什么: 事件、地点、客户或项目。
- 哪一份副本: 原图、编辑版、导出或扫描件。
大多数结构失败,是因为三个维度混用得不一致。以日期为主树,再配一个短事件名, 就能在不建数据库的情况下处理这三件事。
一套能扩展的结构
照片/
2025/
2025-03/
2025-03-14 京都/
2025-03-14-kyoto-0001.jpg
2025-03-14-kyoto-0002.jpg
2025-03-22 家庭午餐/
2026/
2026-01/
_无日期/
_扫描件/
_导出/
背后的规则:
- 顶层是年份,树不会太深。
- 月份写成
YYYY-MM,排序正确。 - 日期或事件写成
YYYY-MM-DD 名称,不靠编号也能读懂。 - 下划线前缀让特殊目录排在年份后面。
- 导出文件放在原图树之外,可以放心删除。
命名规则
选一种文件名规则,然后一直用。一个可用的默认方案:
YYYY-MM-DD-短名称-0001.ext
- 日期能让文件在被移走之后仍然可排序。
- 短名称说明这次拍摄是什么。
- 序号让连拍保持顺序。
- 小写可以避免不同硬盘之间的区分大小写问题。
如果原文件名本身带有你依赖的信息,保留它,在前面加日期。不要为了看起来整齐而 重命名,尤其当文件名是照片来源的唯一记录时。
无日期文件放哪里
截图、扫描件、保存的图片,以及 EXIF 损坏的文件,都会打断日期树。给它们一个家:
_无日期/放没有可用拍摄日期的照片。_扫描件/放扫描件和文档。_导出/放从原图生成的内容。
下划线前缀让这些目录不混进年份序列。以后找到真实日期,再把文件移回对应年份。
外接硬盘
外接硬盘多出两个问题:挂载点和根目录。
- 每次都挂载到同一路径。硬盘断开时,侧边栏会保留位置,重新挂载到同一路径就会 恢复。
- 每块硬盘保持同样的顶层结构,文件只有一个明显的归属。
- 不要把同一年拆到两块硬盘,除非按项目拆分。
- 用硬盘标签做存档根目录,不要用卷 UUID。
迁移已有存档
不要手工移动八万个文件。用方案:
- 备份存档。
- 选一年或一块硬盘。
- 在纸上或应用里搭出目标结构。
- 确认之前预览每个目标路径。
- 确认一批,抽查几个文件,再继续。
- 备份更新之前,保留日志。
Phoaly 的整理台就是做这件事:每个文件一个目标路径、完整预览、日志和撤销。 具体步骤见整理教程。
要避免的结构
- 每次导入一个文件夹。 目录反映的是导入顺序,不是照片本身。
- 所有照片一个文件夹。 到一定规模,Finder 就没法用了。
- 按相机、镜头、场景套五层。 没人愿意点五层去找一张照片。
- 三种日期格式混用。
2025-03-14、03-14-2025和14.03.2025排不到一起。 - 每个应用一份副本。 两个图库就是两份要维护的存档。
常见问题
应该按日期还是按事件分?
日期做父级,事件做叶子。这样排序自动,同时还能读到事件名。
客户项目怎么放?
在日期下面用客户或项目做叶子目录,并保持统一前缀。除非客户是你检索的主要方式, 不要单独建一棵顶层客户树。
目录要分几层?
大多数存档三到四层就够:年、月、事件。再深会拖慢导航,也让批量操作更难。
Phoaly 要求特定结构吗?
不要求。你添加什么目录树,它就镜像什么。这篇教程里的结构是建议,不是限制。