2017-09-01 66 views
0

我試圖在應用程序支持目錄內創建一個目錄,但每次都失敗。嘗試在應用程序支持中創建目錄時拒絕權限

下面的代碼:

func getDownloadableContentPath() -> String { 
     let paths = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true) 
     var directory = paths[0] 
     directory = URL(fileURLWithPath: directory).appendingPathComponent("IAP").absoluteString 
     let fileManager = FileManager.default 
     if !fileManager.fileExists(atPath: directory) { 
      do { 
       try fileManager.createDirectory(atPath: directory, withIntermediateDirectories: true, attributes: nil) 
      } 
      catch { 
       print("Error: Unable to create directory: \(error)") 
      } 
      var url = URL(fileURLWithPath: directory) 
      var values = URLResourceValues() 
      values.isExcludedFromBackup = true 
      do { 
       try url.setResourceValues(values) 
      } 
      catch { 
       print("Error: Unable to exclude directory from backup: \(error)") 
      } 
     } 
     return directory 
    } 

的錯誤是:

Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file 「IAP」 in the folder 「Application%20Support」." UserInfo={NSFilePath=file:///var/mobile/Containers/Data/Application/FF91E234-F856-492E-8C91-9EFAEA3735D4/Library/Application%20Support/IAP, NSUnderlyingError=0x174245430 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}} 

我試圖改變追加路徑組件,試圖文檔目錄,所有的失敗,同樣的錯誤。

回答

2

的問題是在這條線

directory = URL(fileURLWithPath: directory).appendingPathComponent("IAP").absoluteString 

這回文件路徑,而所需的目錄的簡單路徑下的功能。

fileManager.createDirectory(atPath: directory, withIntermediateDirectories: true, attributes: nil) 

因此,要麼改變這一行

directory = URL(fileURLWithPath: directory).appendingPathComponent("IAP").absoluteString 

這一行

directory = directory + "/IAP" 

OR 變化低於線

let url = URL(fileURLWithPath: directory).appendingPathComponent("IAP") 
同一行

,利用此功能來創建目錄

fileManager.createDirectory(at: directory, withIntermediateDirectories: true, attributes: nil) 

希望這有助於你。

相關問題