我正在尝试将文件从沙盒应用的本地存储发送到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的功能。有人可以帮助我解决这个问题吗?
答案 0 :(得分:1)
我知道这个问题很旧,但出现在Google搜索中,因此可能会对他人有所帮助。 根据{{3}},当您尝试将文件发送到iCloud时,应将标志设置为true。您在使用false的位置从iCloud中删除文件。基本上将行从以下位置更改:
try fileManager.setUbiquitous(false, itemAt: fileUrl, destinationURL: iCLoudURL!)
收件人:
try fileManager.setUbiquitous(true, itemAt: fileUrl, destinationURL: iCLoudURL!)
希望有帮助。