我在我的应用程序中同步iCloud Drive和本地存储(“文档”文件夹)。但是有1个错误。
1)设备1(或2)->将文件从文档复制到iCloud容器
2)设备1(或2)->从iCloud容器读取文件到文档-一切正常。
但是:
1)设备1->将文件从文档复制到iCloud容器
2)设备2->将文件从iCloud容器复制到文档-并出现bug。通常所有文件都已复制,但已损坏,我无法在“文档”中打开它(但可以看到)。
在以下屏幕上,在当前设备上创建了1和3个文件,在其他设备上创建了2、4和5个文件,并与iCloud容器同步。还有更多:通常文件大小(1和3)-32kb,损坏的文件-2kb。
我的代码(我将此功能用于从文档复制到iCloud以及从iCloud复制到文档):
private static func copyFilesFrom(url: URL, toURL: URL, folder: String) {
let fileManager = FileManager.default
do {
let newDir = toURL.appendingPathComponent(folder)
if !fileManager.fileExists(atPath: newDir.absoluteString) {
try fileManager.createDirectory(at: newDir,
withIntermediateDirectories: true,
attributes: nil)
} else {
print("Already created catalog with folder: \(folder)")
}
let dirs = try fileManager.contentsOfDirectory(atPath: url.appendingPathComponent(folder).path)
for dir in dirs {
do {
try fileManager.copyItem(at: url.appendingPathComponent(folder).appendingPathComponent(dir),
to: newDir.appendingPathComponent(dir))
} catch {
print(error)
}
}
} catch {
print(error)
}
}