拡張子が「.gz」の圧縮についてです。

PHPでgzopen()、gzwrite()、gzclose()を使用して「.gz」ファイルを書き出したのですが、
それをダウンロードしてアーカイバ「+Lhaca」で解凍すると、
「問題が発生したため、Lhaca.exeを終了します。ご不便を・・・」とエラーが表示され
解凍できません。

そもそも圧縮時にファイルの中身に元のファイル名を保存しなくていいんでしょうか?

【アーカイブソフトでの圧縮・解凍】
a.txt → 圧縮 → a.txt.gz
a.txt.gz → ファイル名変更 → b.txt.gz
b.txt.gz → 解凍 → a.txt

このように、圧縮したファイル名を変更しても、解凍すると自動的に元のファイル名にちゃんと戻るということは圧縮ファイルの中身に元のファイル名が保存されているのではないのでしょうか?
でも、PHPの書き出しでは、元のファイル名を、圧縮ファイルの中身に含める方法の記述はありません。
エラーの原因と何か関係がありますか。

なお、リモートログインして「gzip」コマンドで解凍するとエラーなく解凍できます。
FTPでダウンロードするときは、もちろんバイナリモードです。
エラーの心当たりがある方、よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2006/12/04 14:12:31
  • 終了:2006/12/04 15:50:58

回答(2件)

id:tadashi0805 No.1

tadashi0805回答回数287ベストアンサー獲得回数292006/12/04 14:50:18

ポイント35pt

gzipコマンドで解凍できたということは、PHPで作ったファイルの形式は、問題ない気がします。

おそらく、+Lhacaの何らかの不具合ではないでしょうか。

私の環境では、+Lhaca 1.19でgzip形式の解凍は問題なく行えました。

一旦アンインストールして最新版をインストールするか、別の解凍ソフト(Lhazとか)をインストールしてみてはいかがでしょうか。

id:kyoko55

ありがとうございます。

「+Lhaca」の不具合・・・確かに怪しい気がします。

以前、アーカイバ「WinRAR」で解凍できる「.rar」ファイルを+Lhacaで解凍するとエラーが出たことがありましたので。。

2006/12/04 15:43:55
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402006/12/04 14:54:27

ポイント35pt

gzip は元々データストリームを圧縮する目的で使用されるので、元のファイル名は含めなくとも問題はありません。

gzip コマンドでも回答できていることからも、ファイル自体は問題ないものと思われます。


  1. Lhaca は使った事がありませんが、独自の解凍ルーチンを使用しているようですので他のソフトを使ってみてはいかがでしょうか?
id:kyoko55

ありがとうございます。

なるほど。よくgzipを調べてみたら、ファイル名を含めるか否かはオプションのようでした。

おっしゃるとおりエラーとファイル名は関係ないのですね。

> 独自の解凍ルーチン

他のソフト試してみます!

ありがとうございました。

2006/12/04 15:48:57

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • phpは門外漢ながら。 拡張子が「.gz」の圧縮についてです。 http://q.hatena.ne.jp/1165209150 普段(というのはWindows環境下で、ということ)拡張子gzとかいって使っているのは、tar で複数ファイ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません