zipフォルダの解凍
いつもお世話になっています。
zipフォルダ実行時のことで質問します。
指定のファイルをzipフォルダに格納して、フォルダ名を指定して格納することはできました。
それで、逆に、zipフォルダにどんなファイルがあるかを確かめたいと思ったのですが、可能なのでしょうか?
zipフォルダに格納できたので、それを逆に変えてしようとしたのですが、いまいちわかりません。
zipフォルダに格納したソースは以下です。
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipOutStream_Test {
public static void main(String[] args) throws Exception {
File zipf = new File("D:/zip_Java.zip");
//zipファイルに埋め込むfile名
File[] files = { new File("directory.txt") };
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipf));
try {
encode(zos,files);
} catch (IOException e) {
}catch(Exception e) {
}finally {
zos.close();
}
}
static byte[] buf = new byte[1024];
public static void encode(ZipOutputStream zos, File[] files) throws Exception {
for(File f: files) {
if(f.isDirectory() ) {
encode(zos, f.listFiles() );
}else {
ZipEntry ze = new ZipEntry(f.getPath().replace('\\', '/'));
zos.putNextEntry(ze);
InputStream is = new BufferedInputStream(new FileInputStream(f));
for (;;) {
int len = is.read(buf);
if (len < 0) break;
zos.write(buf, 0, len);
}
is.close();
}
}
}
}
宜しくお願いします。
お礼
回答ありがとうございます。 ビルドパスにant.jarを追加してみましたが変わりませんでした。 一度環境を再構築して試してみます。