java 自带的zip解压类ZipInputStream解压文件夹报错 解决方案
来源:互联网 发布:java可变参数怎么接收 编辑:程序博客网 时间:2024/06/01 10:26
public static void unzipFile(File zip,String directory) throws Exception
{
try{
java.util.zip.ZipInputStream zis = new java.util.zip.ZipInputStream(new FileInputStream(zip)); java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) zis.getNextEntry(); File parent = new File(directory); if (!parent.exists() && !parent.mkdirs()){ throw new Exception("解压 \"" + parent.getAbsolutePath() + "\" 失败"); } while (ze != null){ String name = ze.getName(); File child = new File(parent, name); FileOutputStream output = new FileOutputStream(child); byte[] buffer = new byte[10240]; int bytesRead = 0; while ((bytesRead = zis.read(buffer)) > 0){ output.write(buffer, 0, bytesRead); } output.flush(); output.close(); ze = (java.util.zip.ZipEntry) zis.getNextEntry(); } zis.close(); }catch (IOException e){ e.printStackTrace(); } }
如果压缩文件下面有文件夹就报错没有文件夹直接是文件就不报错误。
解决方案用zip4j import net.lingala.zip4j.core.ZipFile;
/** * 大肠癌市局数据导入 * @param mapping * @param form * @param request * @param response * @return * @throws Exception * @author:jinijing@neusoft.com * @throws IOException * @throws IOException * @throws IOException */public ActionForward doImport(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws IOException {String res = null;// 取得表单对象IUpload upload = null;try {upload = UploadFactory.createAndExecuteUpLoad(UploadFactory.UPLOAD_TYPE_COMMONLOAD, request, response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();// 回调res = "保存出错,请重新保存!";RiaUtil.writerJsonText2Page(response, "<textarea>{result:'" + res+ "'}</textarea>");return null;}IFile file = upload.getFiles().getFile(0);String fileName = file.getFileName();//设置文件名称 try {String filePath = request.getSession().getServletContext().getRealPath("")+ "/tempfh";File fileTemp = new File(filePath);//如果文件夹不存在则创建如果存在删除文件里所有子文件 if (!fileTemp.exists() && !fileTemp.isDirectory()) {//创建文件目录fileTemp.mkdir();} else {//删除文件里所有文件及子文件checkDir(fileTemp);}String df = filePath + "/" + fileName;file.saveAs(df);ZipFile zipFile = new ZipFile(df);zipFile.extractAll(filePath);if (fileTemp.isDirectory()) {String[] children = fileTemp.list();for (int i = 0; i < children.length; i++) {if (children[i].trim().equalsIgnoreCase("初筛记录.xml")) {//导入初筛记录解析xmltraverXmlByIteratorcs(new File(fileTemp + "/初筛记录.xml"));} else if (children[i].trim().equalsIgnoreCase("基本信息.xml")) {//导入初筛记录解析xmltraverXmlByIteratorzb(new File(fileTemp + "/基本信息.xml"));} else if (children[i].trim().equalsIgnoreCase("随访记录.xml")) {//导入随访记录解析xmltraverXmlByIteratorsf(new File(fileTemp + "/随访记录.xml"));} else if (children[i].trim().equalsIgnoreCase("诊断记录.xml")) {//导入诊断记录解析xmltraverXmlByIteratorzd(new File(fileTemp + "/诊断记录.xml"));} else if (children[i].trim().equalsIgnoreCase("report")) {//导入bingli .pdfimportBL(new File(filePath + "/report/bingli"));//导入changjing .pdfimportCJ(new File(filePath + "/report/changjing"));//导入chuyuan .pdfimportCY(new File(filePath + "/report/chuyuan"));}}}} catch (Exception e) {e.printStackTrace();// 回调res = "保存文档出错!";RiaUtil.writerJsonText2Page(response, "<textarea>{result:'" + res+ "'}</textarea>");return null;}// 回调res = "导入数据成功!";RiaUtil.writerJsonText2Page(response, "<textarea>{result:'" + res+ "'}</textarea>");return null;}
0 0
- java 自带的zip解压类ZipInputStream解压文件夹报错 解决方案
- 支持中文的zip压缩和解压,修改自带jdk ZipInputStream、ZipOutputStream、ZipEntry代码
- php 自带的解压zip函数
- java解压带密码的zip文件
- ZipInputStream解压含有中文名称文件的zip包
- java的zip解压
- java.util.zip 的解压和压缩文件夹
- Java解压和压缩带密码的zip文件
- Java解压和压缩带密码的zip文件
- java使用7-zip解压带密码的大文件
- java压缩及解压(.zip)文件文件夹
- [Java语言] java 中使用ZipInputStream或ZipFile解压ZIP文件!!
- android解压带密码的zip包
- objective-zip解压带密码的文件
- linux下解压zip文件报错
- android自带zip轻松实现压缩解压
- Java JDK自带的压缩和解压API
- JAVA自带API的压缩与解压
- Plus One
- 静态变量 全局变量
- unity3d android sdk更新下载
- cocos2dx3.3开发FlappyBird总结四:资源管理类
- 大学生活与未来
- java 自带的zip解压类ZipInputStream解压文件夹报错 解决方案
- 关于适配
- poj1228 (判断凸包的完整性)
- java参数传递(值传递还是引用传递)
- Android Studio离线更新的一些问题
- 2014年终总结
- IPC之消息队列详解
- vmd rmsd distance matrix
- 无线共享