Сохранение документа типа проекта (содержащего вложенные документы)

Я пытаюсь создать документ, подобный «проекту», поскольку он содержит вложенные документы в указанном каталоге. Я хотел бы, чтобы новое сохранение документа настроило этот каталог с соответствующими подкаталогами. Я бы хотел, чтобы «Сохранить как» скопировал все эти подкаталоги и любые файлы в них в новое место. Но я бы хотел, чтобы «Сохранить» обновляло только определенные файлы данных и (конечно) не перезаписывало все вложенные документы!

Какой "безопасный" способ сделать это? Я пытался отслеживать местоположение файла в своем документе и проверять, совпадает ли оно с местом сохранения или отличается от него, но это кажется беспорядочным, и я беспокоюсь, что Apple делает что-то за кулисами, что сделает это прямое сравнение URL-адресов не удается в некоторых случаях.

Есть ли стандартный способ сделать что-то подобное?


person andyvn22    schedule 08.03.2010    source источник
comment
Вы используете пакетные документы?   -  person zneak    schedule 08.03.2010
comment
Да, проект представляет собой пакет, содержащий обычный файл с некоторыми данными, а также каталог, полный вложенных документов.   -  person andyvn22    schedule 08.03.2010


Ответы (1)


NSFileWrapper поддерживает добавочную запись в Snow Leopard, которая будет использовать жесткие ссылки вместо копирования. Похоже, это именно то, что вы ищете.

Дополнительную информацию см. в этой записи в блоге.

person Nicholas Riley    schedule 08.03.2010
comment
К сожалению, использование жестких ссылок для эмуляции копирования при записи является опасной и несостоятельной идеей. Рано или поздно кто-то отредактирует один из «скопированных» файлов в пакете с помощью инструмента, который перезаписывает исходный файл, а не записывает новый, и сломает другие «копии». NSFileWrapper без взлома жесткой ссылки — это «правильный» подход, предоставляемый фреймворком. - person Jens Ayton; 08.03.2010
comment
Эм-м-м? Фреймворк выполняет жесткое связывание за вас. Это не хак, это существенное улучшение скорости добавочных сохранений. И это происходит только с «Сохранить», а не «Сохранить как», как предполагает плакат. - person Nicholas Riley; 09.03.2010