Mac OS X Управление файлами и папками: когда копировать вместо перемещения - PullRequest
1 голос
/ 09 июля 2010

Искатель использует какие-то правила, чтобы определить, может ли Предмет быть перемещен или будет скопирован. После перетаскивания элемента в некоторых случаях Finder отображает курсор перетаскивания. Доступны ли эти правила в API? Проверено с помощью Spotlight-Metadata, NSURL и NSFileManager: безрезультатно.

Вот что я придумал:

  • , если папка содержит «.localized» файл: папка копируется
  • если папка указана где-либо в NSSearchPathDirectory

Правильно ли мое предположение? или это имеет отношение к NSURLIsSystemImmutableKey или NSURLIsUserImmutableKey, который я думал, является флагом "Заблокировано"?

Кроме того, в зависимости от различных других метаданных, таких как права на запись и флаг блокировки:

НА ИСТОЧНИКЕ:

  • перемещение файла только для чтения: перемещение возможно
  • для перемещения папки только для чтения необходимо войти в систему от администратора

  • перемещение заблокированного файла создает копию

  • перемещение заблокированной папки создает копию
  • перемещение папки с заблокированным файлом внутри: перемещение возможно
  • перемещение выделения с заблокированными и разблокированными элементами создает копию

  • перемещение папки для записи в Dropbox только: перемещение возможно

  • файлы только для записи в Finder не существуют

  • перемещение файла без каких-либо разрешений: перемещение возможно (так как права на перемещение зависят от вложенной папки)

  • перемещение папки с файлом без какого-либо разрешения: перемещение возможно (если это перемещение, копирование требует входа в систему)

  • , если папка содержит «.localized» файл: папка копируется

  • если папка указана в любом месте NSSearchPathDirectory (домашний каталог, ...), она копируется

  • если папка содержит другую книгу: перемещение возможно

НА ЦЕЛЕ:

  • перемещение элемента в раскрывающийся список создает копию
  • перемещение объекта в заблокированную папку: невозможно
  • перемещение элемента в папку только для чтения: запрашивает логин

1 Ответ

0 голосов
/ 09 июля 2010

*) Относительно Finder: если файл или каталог перетаскивается с одного тома на другой, он (по умолчанию) будет скопирован. Если действие выполняется на том же томе, файл или папка будут (по умолчанию) перемещены. В качестве примечания к файловым операциям с томами: «перемещение» объектов по разным файловым системам ведет себя по-разному, опять же. Как правило, перемещение файла или каталога не означает «копирование» и «удаление» оригинала впоследствии - только их ссылки в файловой системе обычно модифицируются, но иногда это действительно ведет себя именно так.

*) Кроме того, позаботьтесь о разрешениях объектов: если разрешения файловой системы на этот исходный файл или каталог (и его содержимое внутри) не разрешают операции записи в него, он будет скопирован снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...