2016-01-22 15 views
1

下面引用錯誤被當我運行下面的代碼片段沒有這樣的文件或目錄,NSFilePath =〜/庫

fileManager.contentsOfDirectoryAtPath(libraryPath) 

錯誤

錯誤域= NSCocoaErrorDomain代碼= 260「拋出的(可可錯誤260.)「UserInfo = 0x17585bf0 {NSUnderlyingError = 0x175706b0」操作無法完成,沒有 這樣的文件或目錄「,NSFilePath =〜/ Library,NSUserStringVariant =( 折ER)}

下面是我用以防萬一,如果有人想嘗試

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) 
     } 

    } 

如果有人可以解釋,爲什麼這個錯誤發生,並提出一個解決方案,然後它會是完整的代碼片段大

回答

2

在您的代碼:

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

設置權限true

let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true).first 
+0

增添幾分「爲什麼」的一部分....波浪線擴展通常由命令行shell做的,所以如果你傳遞結果到一個外部命令只是顯示結果,'假'會沒事的。文件管理器例程不會自動執行擴展。 –

相關問題