Отключить символическую ссылку пользователя, выбранного в NSOpenPanel через PowerBox

В Какао, а именно в OS X, я хотел бы удалить символическую ссылку, выбранную пользователем в NSOpenPanel в изолированной среде.

Код, который я пишу, следующий:

NSOpenPanel *openPanel = [NSOpenPanel openPanel];
openPanel.resolvesAliases = NO;
openPanel.canChooseDirectories = NO;
openPanel.allowedFileTypes = @[(NSString *)kUTTypeSymLink];

[openPanel beginSheetModalForWindow:[[self view] window]
                  completionHandler:^(NSInteger returnCode)
 {
     if (returnCode == NSFileHandlingPanelCancelButton) { return; }

     int status = unlink(openPanel.URL.fileSystemRepresentation);

     if (status < 0) {
         NSLog(@" failed unlinking symbolic link at %s", openPanel.URL.fileSystemRepresentation);
     }
 }];

настройка NO в resolvesAliases свойство работает хорошо, чтобы не разрешить символическую ссылку. Таким образом, openPanel.URL возвращает правильное местоположение, выбранное пользователем в openPanel.

Тем не мение, unlink команда терпит неудачу со статусом -1 поскольку PowerBox не дает разрешения на запись для символического файла по URL-адресу, выбранному пользователем.

Я конечно добавила com.apple.security.files.user-selected.read-write ключ с YES в мой файл прав. В дополнение к этому, я использую Xcode 6.4 + OS X 10.10 SDK и запускаю его на OS X 10.10.5.

Как я могу успешно отсоединить символическую ссылку, которую я позволил пользователю выбрать? Или вообще невозможно разорвать символическую ссылку в среде Песочницы?

[Примечание] Я не могу заменить символическую ссылку ни псевдонимом OS X, ни жесткой ссылкой UNIX в этой ситуации. Это должна быть символическая ссылка.

0 ответов

Другие вопросы по тегам