WINDER

albums.json

相册是标签,不是位置。图库根目录下的这个文件定义它们;成员关系则以 id 列表的形式,住在每张照片的边车文件里。

{
  "version": 1,
  "albums": [
    {
      "id": "7c1e9b40-52a8-4c3f-9d16-8b0e2a5f7c33",
      "name": "人像",
      "createdAt": "2026-05-04T10:22:31.004"
    },
    {
      "id": "b2049fa1-6d38-4e12-8a7c-1f5b3d9e0a44",
      "name": "罗马 2026",
      "createdAt": "2026-05-09T18:03:12.771"
    }
  ]
}

字段

字段类型说明
versionint恒为 1
albumsarray按图库顺序——也就是应用展示它们的顺序
albums[].idstringUUID v4。被边车文件引用
albums[].namestring可以为空;也可以与别的相册重名
albums[].createdAtstringISO 8601。解析失败时取当前时间

缺少 idname 的条目在读取时被丢弃:既没有东西可以展示,也没有东西可以和边车文件对上,猜一个只会比跳过更糟。

如果整个文件解析不了,图库会以「没有相册」的状态加载,而不是加载失败——一个坏掉的定义文件绝不该把照片一起拖下水。无论如何边车文件都保留着它们的 id,所以修好这个文件,每一份成员关系都会回来。

为什么用 id 而不是名字

重命名只需往这里写一次,而不必扫过图库里的每一个边车文件;而且两个相册可以同名而不会悄悄合并。

这也意味着相册在这里被定义。删掉一个条目,边车文件里残留的那些 id 就变成惰性的:匹配不到任何东西,也毫无代价。把条目恢复回来——手动改,或让同步追上——每一张曾经佩戴它的照片就又戴上了。

删除

删除相册是 Winder 里唯一不进 .trash 的删除,因为相册不拥有任何文件。条目从这里移除,id 从所有携带它的边车文件里剥掉。没有任何图片被移动。

更新于 2026-08-06