解压缩文件到指定路径(包含中文)

    /**
     * 
     * Function:解压缩
     * @param directory 解压到的路径
     * @param zip 需解压缩的zip包
     * @return boolean
     * @author
     */
    private boolean unzipFile(String directory, File zip) throws Exception{
        ZipFile zipFile = new ZipFile(zip,Charset.forName("gbk"));
        Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zipFile.entries();  
        ZipEntry entry;
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {  
            while (entries.hasMoreElements()) {  
                entry = entries.nextElement(); 
                if(!entry.isDirectory()){
                    bis=new BufferedInputStream(zipFile.getInputStream(entry));  
                    //解压缩里,去除最外层的文件夹
                    String entryName = entry.getName().substring(entry.getName().indexOf("/")+1);
                    File file=new File(directory,entryName);  
                    if(!file.exists()){  
                        (new File(file.getParent())).mkdirs();  
                    }  
                    bos=new BufferedOutputStream(new FileOutputStream(file));  
                    int b;  
                    while((b=bis.read())!=-1){  
                        bos.write(b);  
                    }  
                    bos.close();  
                    bis.close();  
                    System.out.println(file+"解压成功");      
                }
            }
            return true;
        } catch (IOException e) {  
            e.printStackTrace();  
            return false;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值