Файлы корзины внутри выбранной пользователем папки внутри iCloud Drive - PullRequest
1 голос
/ 01 ноября 2019

Мое приложение работает с пользовательскими txt-файлами (создавать, изменять, удалять) внутри любой выбранной пользователем папки. Я просто храню закладку, чтобы получить доступ к выбранной пользователем папке и файлам.

Теперь, с macOS Catalina, когда исходная папка находится внутри iCloud Drive, система все еще позволяет мне создавать и редактировать файлы. Но не позволяет удалить мусор. Когда я пытаюсь сделать это через [[NSFileManager defaultManager] trashItemAtURL: ... ], я получаю следующую ошибку:

Error Domain=NSCocoaErrorDomain
Code=3328 

"<filename> couldn’t be moved to the trash
because the volume “<APFS volume name>”
doesn’t have one."

UserInfo={
NSURL=file:///... <filepath>.txt,
NSUserStringVariant=Trash
}

Примечание: это толькопроисходит, когда приложение помещается в «песочницу».

Есть идеи, как правильно удалить файл?


PS Я знаю, что есть NSWorkspace recycle...метод, но он выдает дополнительный запрос на удаление, который мне не подходит.

PPS Я все еще могу использовать метод [[NSFileManager defaultManager] removeItemAtURL: ...], но мне нужен целевой файл для восстановления в случае, если пользователь передумает.

1 Ответ

0 голосов
/ 04 ноября 2019

Хорошо. Похоже, это редкий случай. Но если вы попали в ту же ситуацию, вот что я закончил:

Есть устаревшая функция - FSMoveObjectToTrashSync - она ​​все еще работает просто отлично. Это спасло мою задницу сейчас.

...