質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

受付中

ZIPファイルの破損が発生する原因は?

sassan
sassan

総合スコア6

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

5回答

0評価

0クリップ

29595閲覧

投稿2016/08/09 05:43

編集2022/01/12 10:55

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は、数十台あります。
その中で、今回一度だけ発生した現象となります。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。