解压文件

来源:互联网 发布:slice js 编辑:程序博客网 时间:2024/04/30 15:00
/** * 解压文件到指定目录 * @param zipFile   待解压的文件 * @param descDir   解压文件后的路径 * @return */@SuppressWarnings("rawtypes")public boolean unZipFiles(File zipfile, File descDir,Boolean delete_zip) {try {if (!descDir.exists())descDir.mkdirs();if (descDir.exists()) {ZipFile zipFile = new ZipFile(zipfile);Enumeration en = zipFile.getEntries();ZipEntry zipEntry = null;while (en.hasMoreElements()) {zipEntry = (ZipEntry) en.nextElement();if (zipEntry.isDirectory()) {//如果这是一个目录,创建目录String dirName = zipEntry.getName();dirName = dirName.substring(0, dirName.length() - 1);File f = new File(descDir.getPath() + File.separator + dirName);f.mkdirs();} else {// 解压文件File f = new File(descDir,zipEntry.getName());if (!f.exists()) {// 判断文件不存在的话,就创建该文件所在文件夹的目录String[] arrFolderName = zipEntry.getName().split("/");String strRealFolder = "";for (int i = 0; i < (arrFolderName.length - 1); i++) {try {strRealFolder += arrFolderName[i] + File.separator;} catch (Exception e) {outErrorLog(this, "unZipFiles", e);}}strRealFolder = descDir.getPath() + File.separator+ strRealFolder;File tempDir = new File(strRealFolder);tempDir.mkdirs();}f.createNewFile();InputStream in = zipFile.getInputStream(zipEntry);FileOutputStream out = new FileOutputStream(f);int c;byte[] by = new byte[1024];while   ((c = in.read(by)) != -1) {try {out.write(by, 0, c);} catch (Exception e) {continue;}}}}if(delete_zip)zipfile.delete();return true;}return false;} catch (Exception e) {return false;}}

0 0
原创粉丝点击