将文件写入iCloud驱动器错误域= NSCocoaErrorDomain代码= 256

时间:2018-07-25 12:42:35

标签: ios swift icloud

我正在尝试将文件从沙盒应用的本地存储发送到icloud驱动器。 不幸的是我遇到了这个错误:

  

错误域= NSCocoaErrorDomain代码= 256“无法打开Soubor“ About.txt”。” UserInfo = {NSURL = file:/// var / mobile / Containers / Data / Application / 1626D575-64CF-4B61-B6B1 -38F0B76ED135 / Documents / path / path / About.txt,NSUserStringVariant =(       “无法禁用未同步项目的同步。”   ),NSUnderlyingError = 0x13d819630 {Error Domain = NSPOSIXErrorDomain Code = 37“操作正在进行中”}}

我的代码如下:

struct DocumentsDirectory {
    static let localDocumentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
    static let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents")
}

复制功能:

func copyFileFromLocacPathToIcloud (fileName:String, filePath:URL, folderName:String) {
   let fileManager = FileManager.default
   if (ICloudUtils.isiCloudEnabled(icloudURL: DocumentsDirectory.iCloudDocumentsURL)) {
      let fileUrl = DocumentsDirectory.localDocumentsURL!.appendingPathComponent("path", isDirectory: true).appendingPathComponent("path", isDirectory:true).appendingPathComponent("About.txt")
      if fileUrl.startAccessingSecurityScopedResource() {

      }
      Log.dbg(msg: "file exists at location \(fileManager.fileExists(atPath: fileUrl.path)) \(fileUrl)")
      let iCLoudURL = DocumentsDirectory.iCloudDocumentsURL?.appendingPathComponent(fileName)
      do {
         try fileManager.setUbiquitous(false, itemAt: fileUrl, destinationURL: iCLoudURL!)
      }catch {
        Log.error(msg: "icloud save file \(error)")
        fileUrl.stopAccessingSecurityScopedResource()

    }
  }
}
我拥有iCloud的

功能。有人可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我知道这个问题很旧,但出现在Google搜索中,因此可能会对他人有所帮助。 根据{{​​3}},当您尝试将文件发送到iCloud时,应将标志设置为true。您在使用false的位置从iCloud中删除文件。基本上将行从以下位置更改:

try fileManager.setUbiquitous(false, itemAt: fileUrl, destinationURL: iCLoudURL!)

收件人:

try fileManager.setUbiquitous(true, itemAt: fileUrl, destinationURL: iCLoudURL!)

希望有帮助。