解决方案 »
- 一个简单的程序报错
- 如何在java api文档中迅速找到某个方法
- 如何判断用户输入的是数字还是字母?
- 花了2天时间写了个多线程网络爬虫,可以通过配置文件设定根网址和需要过滤的网站,以及保存的目录,JAVA版本的
- 请教各位高人一个问题:JAVA如何连接SQLSERVER?
- 请问《Thinking in Java》第五章第4题怎么做啊?
- 请问怎么把PreparedStatement对象中的sql文取出来?
- Question about java
- java的JPanel问题
- 一个比较难讲的题目:请高手谈谈JAVA程序调试技巧?无论在WIN还是UNIX下,谢谢!
- Java中可以不可以使用jqGrid这个控件
- Swing如何通过同一个按钮向任意不同文本框输入值?
package zTest;import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;public class ZipUtil { private static final Project DEFAULT_PROJECT = new Project(); public static void zip(File orgin, File dest) {
Zip zip = new Zip();
zip.setProject(DEFAULT_PROJECT);
zip.setDestFile(dest); FileSet fs = new FileSet();
fs.setProject(DEFAULT_PROJECT);
fs.setDir(orgin);
zip.addFileset(fs);
zip.execute(); } public static boolean unZip(String zipFileName, String outputDirectory) {
boolean flag = false;
try {
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
createDirectory(outputDirectory, "");
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1,
fileName.length());
}
File f = new File(outputDirectory + File.separator
+ zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);
byte[] by = new byte[1024];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
}
flag = true;
}
} catch (Exception ex) {
ex.printStackTrace();
}
return flag;
} private static void createDirectory(String directory, String subDirectory) {
String dir[];
File fl = new File(directory);
try {
if (subDirectory == "" && fl.exists() != true)
fl.mkdir();
else if (subDirectory != "") {
dir = subDirectory.replace('\\', '/').split("/");
for (int i = 0; i < dir.length; i++) {
File subFile = new File(directory + File.separator + dir[i]);
if (subFile.exists() == false)
subFile.mkdir();
directory += File.separator + dir[i];
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
} public static void main(String[] args) {
unZip("E:\\好的\\测试报告.zip", "E:\\好的\\");
}
}