Проверьте, доступен ли путь к закладке в области приложения внутри изолированной программы

У меня есть приложение OS X, в котором хранится закладка в области приложения для постоянного доступа к определенным каталогам. Я могу писать в эти каталоги без каких-либо проблем, но в моем коде есть часть, в которой я хочу сделать дополнительную проверку, чтобы подтвердить, что путь доступен для записи и не работает.

var fileManager: NSFileManager = NSFileManager.defaultManager()
var baseUrl: NSURL = try! NSURL(byResolvingBookmarkData: data, …)
var fileUrl: NSURL = url.URLByAppendingPathComponent("foo.txt")

// Changing this order has no effect, I make only the first start access call,
// the second one is to demonstrate that it's not working.

baseUrl.startAccessingSecurityScopedResource() // true
fileUrl.startAccessingSecurityScopedResource() // false

// File manager confirms that base path is writable, but anything inside
// it – not. This worked perfectly fine before sandboxing the app.

fileManager.isWritableFileAtPath(baseUrl.path!) // true
fileManager.isWritableFileAtPath(fileUrl.path!) // false

// Writing file to the `fileUrl` works anyway, even though
// file manager thinks it's not writable.

writeMyFile(toUrl: fileUrl)

// Here's another interesting observation, is writable starts working
// once the files get created.

fileManager.isWritableFileAtPath(fileUrl.path!) // false
fileManager.createFileAtPath(fileUrl.path!, contents: nil, attributes: nil)
fileManager.isWritableFileAtPath(fileUrl.path!) // true

Я что-то не так делаю или есть проблема с файловым менеджером внутри песочницы? Есть ли достойный способ проверить, доступен ли для записи подпуть, то есть без создания файлов?

Ответы на вопрос(0)

Ваш ответ на вопрос