我正在编写一个程序,它可以像 rsync 一样跨文件系统同步文件,但是在处理包时我被卡住了。这些是系统识别为包含一组连贯文件的文件夹。Pages 和 Numbers 可以使用包而不是单一文件,例如,应用程序实际上是包。我的问题是我想保留最新版本并保留备份副本。据我所知,我有两个选择 -
- 我可以将整个内容视为常规文件夹并逐项处理内容。
- 我可以查看所有内容的所有修改日期,并为具有最近修改内容的那个保留完整的文件夹树。
我打算使用 (2),然后我发现 iPhoto 库实际上是作为一个包存储的,这意味着即使只更改了一张照片,我也会复制整个库(10 甚至 100 千兆字节)。
我对(1)的担心是单独处理内容文件可能会破坏事情。我还没有真正想出一个好的解决方案来保证该软件包可以正常工作并且在某些情况下不会涉及不必要的巨大备份文件。如果只是 iPhoto,那么我可能会放入一个特殊情况,或者如果包大于某个用户指定的限制,则可能会更改策略。
包令人惊讶地神秘,系统将什么视为包似乎不仅仅是在文件夹上设置扩展属性的问题。