2009-08-14 17 views
1

ローカルのフォルダとFTPの場所を同期させる.NETユーティリティを実装しています。ファイルが同じかどうかを確認する最も良い方法は何ですか?私は、 'edtfptnet'と呼ばれるNET FTPクライアントAPIを使用しています。私は、ファイルが同じであっても、exeファイルのサイズが異なっていることがわかりました。 APIによって返されるサイズは、FileZillaで示されるファイルのサイズと同じです。しかし、FileInfo.Lengthで得られるサイズとは異なります。これらの値は、Windowsエクスプローラでファイルプロパティに表示されるサイズとは異なります。なぜこれが起こるのですか?これはテキストファイルでは発生しません。FTPの同期中にファイルの重複を確認します

ファイルが同じかどうかをすばやく確認する方法はありますか。アクセス時間は異なります。 APIは最後の書き込み時間とは異なるLast Modified Timeのみを与えます。

答えて

1

通常、両方のファイルのサイズと変更時間が同じ場合、それらは同じとみなすことができます。私はedtfptnetクライアントに慣れていませんが、同じファイルの場合、リモートファイルサイズはFileInfo.Lengthと等しくなければなりません。これはWindowsエクスプローラで報告されたサイズに必ず等しいはずです( "Size: VMSなどの難解なオペレーティングシステム(実際にファイルサイズに関係なく、ファイルが512刻みでレポートされるか、「ブロック」など)を除いて、

ファイルが同一であることを確認するには、各ファイルのハッシュを計算して比較する必要があります。一部のFTPサーバーはXCRCコマンドをサポートしています。このコマンドは、ファイルのCRC32ハッシュのサーバー側計算を行い、ローカルファイルに対して計算したCRC32ハッシュと比較することができます(例:this post)。しかし、これはファイルサイズの比較に加えて実行する必要があります。

関連する問題