apache ant解压zip。支持多级目录解压
来源:互联网 发布:淘宝卖家如何邀请代销 编辑:程序博客网 时间:2024/05/21 11:44
package cn.liuc.util;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Enumeration;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;public class ZipByOriginalExtractUtil {public static ArrayList<String> unzipFile(String zipFilePath) {String path = zipFilePath.replaceAll("\\\\", "/");String outputDirectory = path.substring(0, path.lastIndexOf("."))+"/";return unZip(zipFilePath, outputDirectory);}/** * 生存目录 * * @param directory * 解压文件存放目录 * @param subDirectory * 子目录(没有时可传入空字符串) */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 e) {e.printStackTrace();}}/** * 解压指定的ZIP文件 * * @param unZipFileName * 文件名字符串(包含路径) * @param outputDirectory * 解压后存放目录 * @return */public static ArrayList<String> unZip(String unZipFileName,String outputDirectory) {ArrayList<String> unzipFileList = new ArrayList<String>();int readedBytes;FileOutputStream fileOutStream=null;byte[] buff = new byte[1024];// File file;InputStream inputStream=null;ZipFile zipFile = null;try {createDirectory(outputDirectory, "");if (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) {zipFile = new ZipFile(unZipFileName, "GBK");} else if (System.getProperty("os.name").toLowerCase().indexOf("linux") >= 0) {zipFile = new ZipFile(unZipFileName, "UTF-8");}for (Enumeration<ZipEntry> entries = zipFile.getEntries(); entries.hasMoreElements();) {ZipEntry entry = (ZipEntry) entries.nextElement();if (entry.isDirectory()) {// 是目录,则创建之String name = entry.getName().substring(0,entry.getName().length() - 1);File f = new File(outputDirectory + File.separator + name);f.mkdir();// file.mkdirs();} else {// 是文件String fileName = entry.getName().replaceAll("\\\\", "/");String path = outputDirectory + "/" + fileName;File f = new File(path);f.createNewFile();inputStream = zipFile.getInputStream(entry);fileOutStream = new FileOutputStream(f);while ((readedBytes = inputStream.read(buff)) > 0) {fileOutStream.write(buff, 0, readedBytes);}fileOutStream.close();inputStream.close();unzipFileList.add(path);}}zipFile.close();} catch (Exception e) {e.printStackTrace();}finally{if (inputStream!=null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}if (fileOutStream!=null) {try {fileOutStream.close();} catch (IOException e) {e.printStackTrace();}}}return unzipFileList;}/** * * \brief 测试 * * @param args * @throws Exception * @attention 方法的使用注意事项 * @author liuchao * @date 2013-9-13 * @note begin modify by 修改人 修改时间 修改内容摘要说明 */public static void main(String[] args) throws Exception {unzipFile("E:\\专家协同解决方案.zip");}}
0 0
- apache ant解压zip。支持多级目录解压
- 支持zip的压缩,zip的解压【支持一级目录的,不支持多级】
- 安卓解压zip文件,解压后多级目录显示
- java Apache zip 支持中文 解压
- zip文件目录解压
- java 压缩解压zip文件--使用ant支持中文
- java使用Apache的ant压缩和解压文件(zip)
- java解压zip、rar(多级文件)
- android 解压zip与rar--解决多级目录与中文乱码问题
- android通过org.apache.tools.zip解压zip压缩文件,支持中文名
- python 多级目录压缩解压文件
- c# 压缩文件、压缩多级目录及解压
- java 使用Apache ant.jar压缩解压zip--一种简单的实现
- ZIP解压
- ZIP解压
- ZIP解压
- zip解压
- 解压zip
- Android开发之AlarmManager详解
- 很小的值
- 绝对值
- cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用
- Weblogic下项目部署遇到的问题总结
- apache ant解压zip。支持多级目录解压
- 配置NFS服务器启动mini2440
- Device Registration and Initialization
- 小波变换和motion信号处理(一)
- 类型的循环和。
- poj2031
- KAFKA调整分区
- hdu2096 小明A+B
- android:使用BaseExpandableListAdapter实现可折叠的列表