人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Zip について 教えてください。 Zipのプログラムを利用しているアプリケーションが以下の2つのメッセージを出すことがあります。 Zipがどのような仕様になっているのか?、エラーメッセージの原因が特定できる情報をお願いします。 英文でもO.K.です。適当なURL、その他の情報をお待ちしています。

message-1, Zip error:Entry too big to split
message-2, Zip error:Could not create output file

●質問者: honcar
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:BIG MESSAGE zip アプリケーション エラーメッセージ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● sterwars22
●27ポイント

http://oshiete1.goo.ne.jp/qa1152880.html

◎質問者からの返答

ありがとうございます。 しかしながら、あまり参考にならず、リンク先のURLも ページがないため役に立ちませんでした。


2 ● ardarim
●100ポイント ベストアンサー

特に説明されたようなURLはないと思いますので、直接ソースコードを見たほうが早いです。

Info-ZIP project - download


message-1, Zip error:Entry too big to split

これはエラーコードZE_BIG(6)のエラー文字列です。

このエラーを返す箇所は3箇所です。

zip232\zipsplit.c(590): ziperr(ZE_BIG, z->zname);

これは、ZipSplitというプログラムが返すエラーです。ZipSplitは、ZIPファイルを指定されたサイズ以下の複数のZIPファイルに分割するプログラムです。

該当のエラー(ZE_BIG = 6)は、ZIPファイルに含まれるファイルの中に、単体で圧縮サイズが指定されたサイズを超えてしまうファイルが含まれているため、指定されたサイズ以下に分割できないことを示すエラーです。

zip232\zipup.c(551): ZIPERR(ZE_BIG, "seek wrap - zip file too big to write");

出力ファイルのサイズが、実行している処理系のfseek()で扱えるサイズを超えたためこれ以上処理できないことを示します。

zip232\zipup.c(831): ZIPERR(ZE_BIG, "file exceeds Zip's 4GB uncompressed size limit");

ZIPが扱えるファイルサイズの上限(32bit=4GB)を超えたためこれ以上処理できないことを示します。


message-2, Zip error:Could not create output file

これはエラーコードZE_CREAT(15)のエラー文字列です。

これはメッセージの英文が示すとおり、ZIPファイルを出力するためにファイルを作成しようとしたが、ファイルの作成に失敗したことを示すエラーです。

このエラーを返す箇所は10箇所ありますが、ファイルを上書きする際に元のファイルの削除(unlink)に失敗したか、またはファイル名の変更(rename)に失敗したか、あるいは新しいファイルの作成(fopen)に失敗したかのいずれかが原因です。削除/変更/作成に失敗した原因は調べようがないので推測するしかありません。

zip232\fileio.c(671): return ZE_CREAT; /* Can't erase zip file--give up */

zip232\fileio.c(690): ) return ZE_CREAT;

zip232\fileio.c(712): return ZE_CREAT;

zip232\zip.c(1900): ZIPERR(ZE_CREAT, zipfile);

zip232\zipcloak.c(301): if ((inzip = fopen(zipfile, "a")) == NULL) ziperr(ZE_CREAT, zipfile);

zip232\zipnote.c(420): ziperr(ZE_CREAT, zipfile);

zip232\zipsplit.c(753): ziperr(ZE_CREAT, path);

zip232\zipsplit.c(773): ziperr(ZE_CREAT, path);

zip232\macos\source\macopen.c(161):if (err != 0) return ZE_CREAT;

zip232\macos\source\macopen.c(164):else return ZE_CREAT;

◎質問者からの返答

丁寧なご回答、ありがとうございます。


3 ● pahoo
●50ポイント

ご利用のZipアプリケーション(それともライブラリですか?)が特定できないとお答えするのが難しいのですが、

message-1, Zip error:Entry too big to split

message-2, Zip error:Could not create output file

英語の意味から考えて、圧縮されているファイルが大きすぎて解凍できないということではないでしょうか。

ZIPファイルは、その中に、各々のファイル(Entry)の解凍後のファイルサイズを持っています。その構造はftp://ring.ocn.ad.jp/pub/text/CTAN/tools/zip/info-zip/doc/appno...を参照ください。

◎質問者からの返答

リンクのファイルはじっくり読ませていただきます。 ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ