zip壓縮檔案解壓到指定目錄
阿新 • • 發佈:2021-08-19
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("******************解壓完畢********************"); }