1

現在、iOS で非常に大きなファイルを次の方法で移動しています。

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

これは NSFileManager のメソッドです。ファイルが非常に大きいため、ソース ファイルをコピーしてから削除する代わりに、ファイルを移動しようとしています。

これを行うより安全な方法はありますか?

4

2 に答える 2

4

ファイルの移動は、非常に軽量な操作です。ディレクトリエントリをファイルシステムのあるポイントから別のポイントに移動するだけなので、何もコピーする必要はありません。

かなり安全なはずです。

あなたが本当に妄想的になりたいのなら、次のようにします。

  • A から B にすべてのバイトをコピーする
  • B がコヒーレントであることを確認する
  • Aを削除

これは、ファイルシステム自体がそれを行う必要があるため、検証部分を除いて、書き込み/コピー API の「原子的に」バリアントがカバーの下で行うことです。

于 2013-04-19T15:50:34.773 に答える
3

あなたがしていることは正しく効率的です。ファイルの移動 (同じファイル システムへの場合) は基本的に瞬時に行われます。しかし、コピーと削除は非常に遅いです。別のファイル システムへのファイルの移動は、実際にはコピーと削除で行われることに注意してください。

于 2013-04-19T15:50:38.880 に答える