zip压缩文件解压到指定目录

  
  public void DoTask(){
        try{

            String zipFilePath = "D:\\UnzipFile\\bd_2018.zip";
            String unzipFilePath ="D:\\UnzipFile\\index\\";

            UnZipFileTest(new File(zipFilePath),unzipFilePath);

        }catch (Exception e){
            System.out.println(e.getMessage());
        }

    }

public void UnZipFileTest(File zipFilePath, String unzipFilePath) throws IOException {

        File pathFile = new File(unzipFilePath);
        if(!pathFile.exists())
        {
            pathFile.mkdirs();
        }

        try{
            //解决zip文件中有中文目录或者中文文件
            ZipFile zip = new ZipFile(zipFilePath, Charset.forName("GBK"));
            for(Enumeration entries = zip.entries(); entries.hasMoreElements();)
            {
                ZipEntry entry = (ZipEntry)entries.nextElement();
                String zipEntryName = entry.getName();
                InputStream in = zip.getInputStream(entry);
                String outPath = (unzipFilePath+zipEntryName).replaceAll("\\*", "/");
                //判断路径是否存在,不存在则创建文件路径
                File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
                if(!file.exists())
                {
                    file.mkdirs();
                }
                //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
                if(new File(outPath).isDirectory())
                {
                    continue;
                }
                //输出文件路径信息
                System.out.println(outPath);
                OutputStream out = new FileOutputStream(outPath);
                byte[] buf1 = new byte[1024];
                int len;
                while((len=in.read(buf1))>0)
                {
                    out.write(buf1,0,len);
                }
                in.close();
                out.close();
            }
        }catch (IOException e){
            System.out.println(e.getMessage());
        }
        System.out.println("******************解压完毕********************");

    }

 

posted @ 2021-08-19 16:35  健身编程Dog  阅读(544)  评论(0编辑  收藏  举报