请看下面的代码。
在上面的代码中,我们使用
如何修复这个问题,以便压缩单个文件、多个文件、文件夹、多个文件夹甚至是嵌套文件夹?Java zip包支持.zip、.tar、.tarGz和tarZ格式,因此解决方案不应仅限于.zip扩展名。
public void startCompress(String path,String fileName,String outputLocation,int compressType,int filSize) throws Exception
{
System.out.println("Input Location: "+path);
System.out.println("Output Location: "+outputLocation);
System.out.println(compressType);
byte[] bs=new byte[filSize];
System.out.println(filSize);
FileOutputStream fos=new FileOutputStream(outputLocation+"/test.zip");
System.out.println(fos.toString());
ZipOutputStream zos=new ZipOutputStream(fos);
ZipEntry ze = new ZipEntry(fileName);
zos.putNextEntry(ze);
FileInputStream inputStream=new FileInputStream(path);
int len;
while((len=inputStream.read(bs))>0){
zos.write(bs, 0, len);
}
inputStream.close();
zos.closeEntry();
zos.close();
}
在上面的代码中,我们使用
java.util.zip
包来压缩文件。但是我们有一个问题,如果我们选择多个文件,则只会压缩其中一个文件。如果我们选择一个文件夹,那么压缩根本不起作用。如何修复这个问题,以便压缩单个文件、多个文件、文件夹、多个文件夹甚至是嵌套文件夹?Java zip包支持.zip、.tar、.tarGz和tarZ格式,因此解决方案不应仅限于.zip扩展名。