2

NSFileManagerこのメソッドは、2つのファイルを比較するための動的チェックサムを作成しますかcontentsEqualAtPath:andPath:、ファイルヘッダーを開いてファイルヘッダーの詳細を比較しますか、それとも他の方法を使用して比較しますか?

ローカルファイルをリモートサーバーボリューム上のファイルと比較する場所を比較するために、200,000程度のファイルのリストがあります。ローカルファイルは過去のある時点でリモートサーバーボリュームからコピーされていたはずです。ファイルのリストを調べてそれぞれを比較し、新しいファイルをリモートサーバーボリュームからローカルマシンにコピーします(既存)。リモートサーバーファイルがローカルユーザーによって作成されたという保証はありません(おそらく、作成されていない可能性があります)。

ファイルが小さい(サイズが約4K)ため、複雑なファイル比較操作には、コピー操作とほぼ同じ時間がかかる場合があります。

この操作は(おそらくではありませんが)ユーザーセッションで複数回発生する可能性があるため、最も効率的なチェック方法を使用していることを確認する必要があります。

操作自体は別のスレッドで実行されるため、操作の完了中にユーザーを拘束する問題はありません。

私はこれをテストするために実装を開始しましたが、新しいファイルが存在する場合に更新が必要なファイルを判別するために、他の誰かが何千ものファイルをすばやく比較した経験があるかどうかを確認することに興味がありました。そして、もしあなたが持っているなら、あなたは避けるべき指針や落とし穴がありますか?

どんなアドバイスも大歓迎です。

アップデート

これについてもう少し考えてみると、変更された画像の最後に更新されたタイムスタンプを追跡するファイルを保持し、同じことを実行するローカルファイルを保持し、これら2つのドキュメントを比較する方が有益かもしれません...進行するにつれてさらに更新されます。

4

1 に答える 1

1

ディレクトリの場合、ファイル名(およびサブディレクトリのファイル名)のみが比較されるように見えます。メソッドにファイルパスを明示的に渡した場合にのみ、ファイルの内容を比較します。

于 2010-10-05T18:11:32.127 に答える