unzip.java

来自「局域网传输共享文件」· Java 代码 · 共 78 行

JAVA
78
字号
import java.util.zip.*; 
import java.io.*; 
public class Unzip 
{ 
/* 
  * 检查目标文件是否存在 
  * @param name 目标路径 
  * @return 文件路径 
  */ 
public String checkDirectory(String name) 
{ 
  File f=new File(name); 
  if(f.exists()) 
  { 
   return f.getAbsolutePath(); 
  } 
  else 
  { 
   f.mkdir(); 
   return f.getAbsolutePath(); 
  } 
} 
/* 
  * 解压缩ZIP文件函数 
  * @param inputZipFIle 要解压的ZIP文件 
  * @param outDirectory 解压缩目录 
  */ 
public boolean unZip(String inputZipFile,String outDirectory){ 
     boolean b = false; 
     try{ 
       
      File f1=new File(inputZipFile);
      String out=checkDirectory(outDirectory+f1.getName().subSequence(0, f1.getName().indexOf(".")));
      FileInputStream fin = new FileInputStream(inputZipFile); 
      
      ZipInputStream zin = new ZipInputStream(fin); 
      ZipEntry z; 
      while((z=zin.getNextEntry())!= null){ 
       if(z.isDirectory()){ 
        String name = z.getName(); 
        //System.out.println(name); 
        name = name.substring(0,name.length()-1); 
        File f = new File(out+File.separator+name); 
        f.mkdir(); //创建解压目录 
       }else{ 
        System.out.println(out+File.separator+z.getName()); 
        File f = new File(out+File.separator+z.getName()); 
        f.createNewFile(); //创建解压文件 
        FileOutputStream fout = new FileOutputStream(f); 
        int buf; 
        while((buf = zin.read())!= -1){ 
         fout.write(buf); 
        } 
        fout.close(); 
       } 
      } 
      fin.close(); 
      zin.close(); 
      f1.delete();
      f1.exists();
      b = true; 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
        return b;   
  } 
/* 
  * 测试函数 
  */ 
public static void main(String[] args) 
{ 
  Unzip zip=new Unzip(); 
  boolean flag=zip.unZip("E:\\Facade.zip",""); 
  System.out.println(flag); 
} 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?