2015-12-11 4 views
0

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

код следующим образом:

override func viewDidLoad() { 

    var paths:[AnyObject] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
    var documentsDirectory = paths[0] as? String 
    documentsRoot = documentsDirectory! + "/" 

    var root = NSURL(string: documentsRoot!) 

    addSkipBackupAttributeToItemAtURL(root!) 
} 

func addSkipBackupAttributeToItemAtURL(URL: NSURL) -> Void { 

    var filepath = NSURL(fileURLWithPath: "\(URL)") 

    let fileManager = NSFileManager.defaultManager() 
    assert(fileManager.fileExistsAtPath(URL.absoluteString)) 

    var error:NSError? 

    do { 
     try filepath.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey) 
    } 
    catch let error as NSError { 
     print("Error excluding \(filepath.lastPathComponent) from backup \(error)") 
    } 

    return 
} 

при запуске кода я получаю этот выход

Ошибка за исключением Факультативно ("... cuments") из резервной копии Ошибка домена = NSCocoaErrorDomain Code = 4 «Файл« ... cuments »не существует ». UserInfo = {NSURL = файл: ///Users/me/Library/Developer/CoreSimulator/Devices/D1FC9BFB-4F95-440D-A3C5-ED1C0665A610/data/Containers/Data/Application/%20...%20cuments/, NSFilePath =/Пользователи/me/Library/Developer/CoreSimulator/Devices/D1FC9BFB-4F95-440D-A3C5-ED1C0665A610/data/Containers/Data/Application/ ... cuments, NSUnderlyingError = 0x7f86b2c80850 {Ошибка Домен = NSPOSIXErrorDomain Code = 2 «Нет такого файла или каталога»}}

Что я делаю неправильно?

ответ

1

Похоже, что вы используете текстовое описание URL здесь:

var filepath = NSURL(fileURLWithPath: "\(URL)") // \(URL) is a string that contains not just the path, but also the optionality of the variable 

тогда вы должны использовать path собственность на NSURL.

+0

В этом смысл. Спасибо! –

Смежные вопросы