import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import java.util.zip.ZipOutputStream
class ZipTest {
// 压缩
public static void zip(String zipFileName, String inputFile)
throws Exception {
File f = new File(inputFile)
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName))
zip(out, f, f.getName())
System.out.println("zip done")
out.close()
void decompression(File zipFile){1:解压zipFile
2:遍历解压后的文件目录,找到其中的zip文件,然后
decompression(zip文件)
}
就是说递归
我试了一下,没有问题先问一下,你用的JDK是什么版 本。我是1.6_20,直接用你的程序。
zipFile = new ZipFile(new File(zipfile),"GBK")
Enumeration enumeration = zipFile.getEntries()
是报错的。
我改成了
zipFile = new ZipFile(new File(zipfile))
Enumeration enumeration = zipFile.entries()
这应该不是主要问题。
有没有可能是你的压缩包损坏了。或是包里的那个文件坏了,跟一下断点,看一下是解那个文件出的错。