こんにちは、初めて質問させていただきます。
Server:Windows Server2003
Client:Vista
Vista端末にCopyFileでコピーしたときに、稀にファイルが破損する現象が
発生しており、その対策として、
ServerからCopyFileでファイルをコピーした後(ここまでは実装済み)
それらが同一のファイルであるかを比較しようと考えています。
それでご質問なのですが、バイナリ形式のチェックを行うにはどうすればよいでしょうか。
またファイルの比較のやり方として、どのようなやり方がメジャーなのでしょうか。
ツールはDelphi2007を使用しております。
よろしくお願いします。
申し訳ございません。仮タイトルで登録してしまいました。
MD5みたいなハッシュでいいんじゃない?
http://homepage1.nifty.com/Ayakawa/soft/index.html
コピー後にオリジナルと比較する時に、どちらも
もう一度読み込むのであれば同時にオープンして
1バイトずつ比較するのがハッシュ計算がない分
早いのではないでしょうか。
ファイルコピーを自前で実装して同時にMD5の計算をするなら
オリジナルの再読み込みがない分早くできると思います。
「稀にファイルが破損する現象」の方がやばくないですか?
ウイルスチェックしてますか?
COPYコマンドでコピーしても問題はないんですか?
その後の調査で、現象の原因は結局わからなかったのですが、
破損したファイルは必ずタイムスタンプが
最新の時間に更新されることがわかりました。
時間的な問題もあり、今回はタイムスタンプをチェックするに留める方向になりました。
ファイル比較するようであればバイトチェック処理を追加したと思います。
Delphiにはファイル比較関数が標準ではないみたいですね。
ウイルスチェックは行われています。
COPYコマンドは問題なかったですが、既存処理をあまり変えたくないという
矛盾した意向がありまして・・・汗
ということでいったん解決とさせていただきます。
ありがとうございました。
ツイート | ![]() |