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