Нет такого файла или каталога, NSFilePath = ~ / Library

Приведенная ниже ошибка возникает, когда я запускаю следующий фрагмент кода

fileManager.contentsOfDirectoryAtPath(libraryPath)

Ошибка

Error Domain = NSCocoaErrorDomain Code = 260 «Операция не может быть завершена. (Ошибка какао 260.)» UserInfo = 0x17585bf0 {NSUnderlyingError = 0x175706b0 «Операция не может быть завершена. Нет такого файла или каталога», NSFilePath = ~ / Библиотека, NSUserStringVariant = (Папка)}

Вот полный фрагмент кода, который я использовал на всякий случай, если кто-нибудь захочет попробовать

   func listLibDir(){

        let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, false).first!

        let fileManager: NSFileManager = NSFileManager.defaultManager()

        do{
            var directoryContent:Array<String> = try fileManager.contentsOfDirectoryAtPath(libraryPath)

            for fileName: String in directoryContent {
                print("library:\(fileName)")
            }
        }
        catch{
            print(error)
        }

    }

Если кто-то может прояснить, почему возникает эта ошибка, и предложить решение, было бы здорово


person Durai Amuthan.H    schedule 22.01.2016    source источник


Ответы (1)


В вашем коде:

let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, false).first!

Установите разрешение true:

let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
person Ramesh_T    schedule 22.01.2016
comment
Чтобы добавить немного информации о причинах ... Расширение тильды обычно выполняется оболочкой командной строки, поэтому, если вы передавали результат внешней команде или просто отображали результат, false было бы хорошо. Подпрограммы файлового менеджера не выполняют расширение автоматически. - person Phillip Mills; 22.01.2016