- - PR -
空フォルダを含むZIPファイルの作成について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-11 18:17
はじめまして。
ひとつ行き詰まったところがあり、投稿させていただきました。 現在、java.util.zipを使って、ZIPファイル作成のプログラムを作っています。 圧縮するディレクトリ構造に、空フォルダ(ファイルをもたないフォルダ)があります。 その場合、その空フォルダを含めた形でZIPファイルを作成する方法がわかりません。 ZipEntryクラスにて、ファイルをパス指定し、それまでのフォルダは自然と作成されます。 フォルダ自体というのは、Zipファイルに作れないのでしょうか? WinZipのソフトを使って圧縮してみましたが、空フォルダも圧縮できていました。 それを考えると、Zipの仕様で空フォルダが作れないわけではないようです。 どなたか知恵をお借りできないでしょうか? よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-11-12 09:52
古いかも
[JavaHouse-Brewers:14962] Re: java.util.zip クラスの使い方について http://java-house.jp/ml/archive/j-h-b/014962.html | ||||||||||||
|
投稿日時: 2004-11-12 18:20
MMXさん回答ありがとうございます。
残念ながら、リンクをたどって行ってみましたが、空フォルダの圧縮方法については見つけることができませんでした。 (その部分はもうなくなってしまったのかな?) どなたか知っていますか? 問題を具体的に言うと、下記の例になります。 TEST ├A ----フォルダ │└A1.txt ----ファイル ├B ----フォルダ │└B1.txt ----ファイル ├C ----フォルダ(←圧縮できない) │ └D ----フォルダ └D1.txt ----ファイル ZIP圧縮する場合、A1.txt,B1.txt,D1.txtのファイルをZipEntryにパス指定することによって、A,B,Dのフォルダは自動的に作成されます。 問題は、Cフォルダを圧縮する手段がなんとも見つからないことです。 (new ZipEntry("\\Test\\C") とエントリを行っても、当然ファイルとみなされてしまいます。) java.util.zipの限界なのかとも、思いはじめてます。 | ||||||||||||
|
投稿日時: 2004-11-12 19:12
以下のような感じで、名前の最後に"/"を付けてやるとフォルダと認識されるようですよ。
ZipEntry#isDirectory()のAPIドキュメントにこんな事が書いてあります。
コンストラクタのコメントにも書いておいて欲しいですよねぇ。 | ||||||||||||
|
投稿日時: 2004-11-12 19:40
佐々木さん、回答ありがとうございます。
できました! 本当に感謝です。 # javadocをよーく解釈しないといけないですね。 |
1