import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
import java.util.Enumeration
import org.apache.tools.zip.ZipEntry
import org.apache.tools.zip.ZipFile
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
public class unZipFiles {
//zip文件路径
String fileAddress = "D:\\test.zip"
//zip文件解压地址
String unZipAddress = "F:\\unZipFiles\\"
//去目录下寻找文件
File file = new File(fileAddress)
ZipFile zipFile = null
try {
zipFile = new ZipFile(file,"GBK")
} catch (IOException exception) {
exception.printStackTrace()
System.out.println("解压文件不存在!")
}
Enumeration e = zipFile.getEntries()
while(e.hasMoreElements()) {
ZipEntry zipEntry = (ZipEntry)e.nextElement()
if(zipEntry.isDirectory()) {
String name = zipEntry.getName()
name = name.substring(0,name.length()-1)
File f = new File(unZipAddress + name)
f.mkdirs()
} else {
File f = new File(unZipAddress + zipEntry.getName())
f.getParentFile().mkdirs()
f.createNewFile()
InputStream is = zipFile.getInputStream(zipEntry)
FileOutputStream fos = new FileOutputStream(f)
int length = 0
byte[] b = new byte[1024]
while((length=is.read(b, 0, 1024))!=-1) {
fos.write(b, 0, length)
}
is.close()
fos.close()
}
}
if (zipFile != null) {
zipFile.close()
}
file.deleteOnExit()
}