2010-03-08 64 views
0

我试图创建一个“类似项目”的文档,因为它包含指定目录中的子文档。我想要一个全新的文档保存来设置具有适当子目录的那个目录。我想要一个“另存为”将所有这些子目录及其中的任何文件复制到新位置。但我想要一个“保存”只更新某些数据文件和(当然)不覆盖所有的子文档!保存“项目”类型的文档(包含子文档)

什么是“安全”的方式来做到这一点?我试着跟踪文件在我的文档中的位置,并检查它是否与保存位置相同或不同,但感觉很混乱,我担心苹果在幕后做了一些事情,在某些情况下,直接的URL到URL比较失败。

有没有一个标准的方法来做这样的事情?

+0

您使用的是包装类型的文件吗? – zneak 2010-03-08 01:10:23

+0

是的,“项目”是一个包含包含一些数据的常规文件以及充满子文档的目录的包。 – andyvn22 2010-03-08 01:39:53

回答

1

NSFileWrapper在Snow Leopard中具有增量写入支持,它将使用硬链接而不是复制。这看起来像你正在寻找的。

查看this博客条目以获取更多信息。

+0

不幸的是,使用硬链接来模仿写时复制是一个危险的和破碎的想法。迟早有人会用重写原始文件而不是写入新文件的工具编辑包中的一个“复制”文件,并打破其他“副本”。 没有硬链接黑客的NSFileWrapper是“适当的”框架提供的方法。 – 2010-03-08 19:16:00

+1

呃?框架* *为您做了硬连接。这不是黑客攻击,对增量保存来说,这是一个显着的速度提升。这只发生在“保存”,而不是“另存为”,就像海报所说的那样。 – 2010-03-08 23:08:19