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

时间:2013-04-19 15:44:39

标签: ios objective-c filesystems nsfilemanager

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

[fileManager moveItemAtURL:srcURL toURL:toURL error:&error];

这是来自NSFileManager的方法。 因为文件太大我试图移动它们而不是复制然后删除源文件。

有更安全的方法吗?

2 个答案:

答案 0 :(得分:4)

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

应该很安全。

如果你真的真的想要偏执,那么:

  • 将所有字节从A复制到B
  • 验证B是连贯的
  • 删除A

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

答案 1 :(得分:3)

您正在做的是正确和有效的。移动文件(如果到同一文件系统)基本上是即时的。但复制和删除非常慢。请注意,将文件移动到其他文件系统实际上是通过复制和删除完成的。