電子書籍の厳選無料作品が豊富!

java.util.zipで空フォルダを格納したいのですが、思った動作にならず、困ってます。
どうかお助けください。

下のプログラムでは、作成されたcreated.zipを展開すると、その中にmyDirectoryというディレクトリを作成したいのですが、このまま実行すると、展開するときになぜか管理者権限を求められて、そして成功もしません。

問題の場所にDIRECTORYNAME2を指定すると、展開はできるのですが、「指定されたファイル名と同じフォルダが既に存在します」と言われ、スキップを選択するときちんとディレクトリが作成されていますが、きちんとしたZip圧縮ファイルで圧縮した場合、そのようなことは聞かれません。

org.apache.tools.zip.*を使用した場合でも結果は同じでしたので、JDKのバグというのは考えにくい気がしますが・・。

---------------- プログラム -------------------
final File fCreate = new File("./created.zip");
final String DIRECTORYNAME1 = "myDirectory/";
final String DIRECTORYNAME2 = "myDirectory//";

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(fCreate));

// 問題の場所
ZipEntry dirEntry = new ZipEntry(DIRECTORYNAME1);

out.putNextEntry(dirEntry);
out.closeEntry();

ZipEntry fileEntry = new ZipEntry("myFile");
out.putNextEntry(fileEntry);
out.closeEntry();

out.close();

A 回答 (1件)

空フォルダってzip圧縮できましたっけ?


うろ覚えですけど、
他のzipツールで空フォルダ作りたいときは「dummy.txt」とか、何かしら中身を入れて圧縮してたような…。

この回答への補足

以下のことが発覚しました。

VistaでZip作成→XPで解答可能
XPでZip作成→Vistaで解答不可能
私の質問→みなさん回答不可能なのでしょうか。

それともバグなのでしょうか。

補足日時:2007/12/04 20:47
    • good
    • 0
この回答へのお礼

発覚したことをまとめておきます。

1, Vistaで[右クリック→送る→圧縮(Zip)フォルダ]で圧縮したものは、Vistaで[右クリック→展開]で解凍可能(多分他でも可能)

2, Vistaで質問プログラムでZip作成→Vistaで[右クリック→展開]で解凍不可能
3, Vistaで質問プログラムでZip作成→XPで[右クリック→展開]で解凍可能
4, Vistaで質問プログラムでZip作成→Linux(Debian)でunzipで解凍可能

5, XPで質問プログラムでZip作成→Vistaで上記方法で解凍不可能
6, Linuxで質問プログラムでZip作成→Vistaで上記方法で解凍不可能

いずれの環境もJDK、JRE共に1.6を使用しています。

この結果を見る限り、Vistaの展開操作だけが違ったふるまいをしているように見えます。

Vista環境の方いましたら、2番だけでも成功するかどうか実験お願いします。

お礼日時:2007/12/06 13:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!