Отключить символическую ссылку пользователя, выбранного в 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 в этой ситуации. Это должна быть символическая ссылка.