1. 程式人生 > 其它 >zip壓縮檔案解壓到指定目錄

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("******************解壓完畢********************"); }