在 iOS 上移动或复制大文件 (> 100 MB) 的最可靠方法是什么?

ope*_*rog 2 filesystems objective-c nsfilemanager ios

现在我正在使用以下方法在 iOS 中移动非常大的文件:

[fileManager moveItemAtURL:srcURL toURL:toURL error:&error];
Run Code Online (Sandbox Code Playgroud)

这是 NSFileManager 的一个方法。由于文件太大,我尝试移动它们,而不是复制然后删除源文件。

有更安全的方法吗?

bbu*_*bum 5

文件移动是一种极其轻量级的操作;它不涉及复制任何内容,因为它只是将目录条目从文件系统中的一个点移动到另一个点。

应该是相当安全的。

如果你真的变得偏执,那么:

  • 将所有字节从 A 复制到 B
  • 验证 B 是否一致
  • 删除A

这就是写入/复制 API 的“原子”变体在幕后所做的事情,除了验证部分之外,因为文件系统本身应该这样做。