【发布时间】:2011-12-16 20:29:43
【问题描述】:
我已经查看了有关此问题的最新问题,但找不到解决问题的方法。我需要压缩一个包含一堆目录的目录,这些目录都包含内容(基本上是文本文件)。当我打开 zip 时,我想找回相同的目录列表。
我的问题是我可以压缩内容,但我的 zip 文件要么只包含纯文件(没有目录),要么就损坏了。有人做过吗?
我发布的代码一直在产生损坏或看似空的拉链。这是我的方法(总结)
公共压缩目录
File dirObj = new File(fileDirectory);
String outFilename = zipDirectory+File.separatorChar+filename+".zip";
log.info("Zip Directory: " + outFilename);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
System.out.println("Creating : " + outFilename);
addDir(dirObj, out);
out.close();
添加目录
File[] files = dirObj.listFiles();
byte[] tmpBuf = new byte[1024];
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out);
continue;
}
FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
System.out.println(" Adding: " + files[i].getAbsolutePath());
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
int len;
while ((len = in.read(tmpBuf)) > 0) {
out.write(tmpBuf, 0, len);
}
out.closeEntry();
in.close();
}
主要
zipDir(filename, properties);
【问题讨论】:
-
我有一个解决方案,但我还不能发布。我明天发帖。
标签: java windows zip directory