2010-03-08 66 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