VC++で、所定のフォルダにあるテキストファイルをフォルダごとZIP圧縮し、FTPにて別PCへ転送し、転送先のPCで、ZIPファイルを解凍するシステムを作っています。
システム運用中に、ZIPファイルの破損が発生し、転送先PCでの解凍に失敗する現象が発生しました。
ZIPの圧縮・解凍はDLLを使用しており、破損の原因がDLLなのか、通信なのか不明な状態のため、原因を特定したいと考えています。
破損したZIPファイルは、基本的には解凍ができず、トライした中では、Lhaplusのみ破損を検知した上で解凍が実行できましたが、解凍されたファイルは一部のみとなっていました。
また、ZIPファイルをバイナリエディタで確認したところ、ファイル内の途中から複数個所で、512バイト分0埋めデータとなっていました。
上記の状況が発生する原因としては、どのようなことが考えられますでしょうか?
原因特定のために、アプローチすべきこともありましたら、ご教示ください。
<補足情報>
OS:圧縮側:Windows8.1 64bit
OS:解凍側:Windows7 32bit
開発環境:VS2012、VC++
圧縮ライブラリ:zip32.dll、zip32j.dll
解凍ライブラリ:unzip32.dll
<追加情報1>
ZIPファイルは送信後、削除されるため、送信側で破損していたかどうかはわかりません。
DLLでの圧縮時にエラーが発生したかどうかのログも出力していないプログラムのため、現状送信先に破損したZIPファイルが転送された事実しかわかっておりません。
<追加情報2>
DLLでの圧縮は、zip32.dllのZip関数に、以下のようなコマンドを渡しています。
「-rq [出力するZIPファイルパス] [フォルダパス] [フォルダ]*.*」
通信に関しては、ソースコードがどうなっているか確認できない状況です。
<追加情報3>
システムは、半年ほど稼働しており、送信は1日1回程度ですが、送信側のPCは、数十台あります。
その中で、今回一度だけ発生した現象となります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/09 06:04
2016/08/09 06:29