前提

在使用 Sketch 时,因为各种原因导致的源文件不能被打开(不包含跨版本打开源文件这种情况),例如 Sketch 崩溃或者退出后导致某个源文件不能被打开了,通常会显示「The document xxx could not be opened」的提示语。

适用条件:

1. 开启了 Sketch 设置里的「Auto Save file while editing」

2. 最近没有清理过 Sketch 的缓存,比如使用网上的命令行或者用 Sketch Cache Cleaner 这个软件

3. 没有把你损坏的文件给彻底删除

如果你满足了以上条件,那不妨试试接下来这个办法。没错,就是从 Sketch 自动备份的文件夹去找回历史版本。但是本文的方法基于系统的文档版本文件夹没有坏掉,如果坏掉了,那可能只有神仙才能把你救回来了。

以下操作均在访达(也就是 Folder)内完成。

具体操作

一、备份文件路径与权限前提

没错,你需要找的文件是隐藏起来的。所以,第一步就是让你的隐藏文件可见。我们需要找的这个文件夹叫做「.DocumentRevisions-V100」,请看以下步骤:

1. 显示隐藏文件 —— 输入以下快捷键让隐藏文件可见(再次按下则不显示隐藏文件)


Shift + Cmd + .


2. 找到文档版本备份文件夹

如果你的 macOS 系统是 10.15 之前的,则输入:


/Volume/.DocumentRevisions-V100


如果你的系统是 10.15,则输入:


/System/Volumes/Data/.DocumentRevisions-V100


到了这里,我们算是来到了宝藏的大门前。你会看到文件夹都是置灰而且还有个红色小图标,点击还会发现没有权限查看,怎么办?!

**注意:如果你发现你的电脑里只有「.DocumentRevisions-V100-bad-1」或者「.DocumentRevisions-V100-1」和「.DocumentRevisions-V100-bad-1」都有,这意味着可能系统某些数据已经损坏,但不用灰心,尽管试试吧!

3. 授予权限


ios app 的SKU怎么获取_.pos文件怎么打开


二、找到对应的备份文件夹

进入到「.DocumentRevisions-V100」文件夹,你会发现,里面又是一堆文件夹,而且命名还看不懂是干什么的。别慌,接下来请选择「PerUID」这个文件夹,按照上文的方式去给予权限才能打开。接下来的「501」文件夹也是一样(下图是分栏显示模式)。


ios app 的SKU怎么获取_.pos文件怎么打开_02


如果你顺利的来到了如图所示的文件夹里面,你也会发现有很多用「1a」、「2c」 这样来命名的子文件夹,而且数量还不少。这时候就需要一点小技巧了。让我们回到你损坏的源文件那里,在分栏显示的模式下检查一下源文件的创建时间(如下图所示)。


ios app 的SKU怎么获取_.ipynb文件怎么打开_03


记住这个时间,回到刚刚的「501」文件夹里面,切换到列表显示的模式。然后右键「修改日期」那里,选择「创建日期」。


ios app 的SKU怎么获取_.pos文件怎么打开_04


接下来,只要找到和源文件创建日期一致的文件夹,给予权限,就可以进去找回历史版本啦。

注意事项

当你找到可以成功打开的文件,千万别高兴得太早!因为作者遇到过重启电脑打开 SIP 之后,整个文档版本备份文件夹损坏的情况!那些复制出来的副本也打不开了。而最近在网上看到几篇文章里面写到:

从 Sketch 创建一个文档,就赋予文档一个 ID...如果在 Finder 或其他方式复制文件或者不通过 Sketch 新建文档,而是直接复制 Sketch 文档,他们就会具有相同的文档 ID

我想,可能是因为具有相同 ID 的原因?所以,复制副本并不是足够安全的做法。在这里推荐以下方法:

  • 复制副本,然后使用 Sketch 新建文档,把旧文档的内容复制过去。
  • 把新文档上传到云盘里。

因此请各位多做一步,以防万一!

教程就到这里,希望各位平时做好备份工作,减少不必要的麻烦。此教程或许好几年才能用一次,希望能够帮到大家。

参考

How to recover 50 GB or even more by deleting Sketch caches files