天天减肥网,内容丰富有趣,生活中的好帮手!
天天减肥网 > android zip解压缩(含有子目录)

android zip解压缩(含有子目录)

时间:2021-02-11 09:05:08

相关推荐

android zip解压缩(含有子目录)

为什么80%的码农都做不了架构师?>>>

note: 如果目录中含有中文名称, 要用substr = new String(substr.getBytes("8859_1"), "GB2312");这样的语句转换,否则为乱码

/*** 解压缩功能.* 将ZIP_FILENAME文件解压到ZIP_DIR目录下.* @throws Exception*/public int upZipFile(File zipFile, String folderPath)throws ZipException,IOException {//public static void upZipFile() throws Exception{ZipFile zfile=new ZipFile(zipFile);Enumeration zList=zfile.entries();ZipEntry ze=null;byte[] buf=new byte[1024];while(zList.hasMoreElements()){ze=(ZipEntry)zList.nextElement();if(ze.isDirectory()){Log.d("upZipFile", "ze.getName() = "+ze.getName());String dirstr = folderPath + ze.getName();//dirstr.trim();dirstr = new String(dirstr.getBytes("8859_1"), "GB2312");Log.d("upZipFile", "str = "+dirstr);File f=new File(dirstr);f.mkdir();continue;}Log.d("upZipFile", "ze.getName() = "+ze.getName());OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(folderPath, ze.getName())));InputStream is=new BufferedInputStream(zfile.getInputStream(ze));int readLen=0;while ((readLen=is.read(buf, 0, 1024))!=-1) {os.write(buf, 0, readLen);}is.close();os.close();}zfile.close();return 0;}/*** 给定根目录,返回一个相对路径所对应的实际文件名.* @param baseDir 指定根目录* @param absFileName 相对路径名,来自于ZipEntry中的name* @return java.io.File 实际的文件*/public static File getRealFileName(String baseDir, String absFileName){String[] dirs=absFileName.split("/");File ret=new File(baseDir);String substr = null;if(dirs.length>1){for (int i = 0; i < dirs.length-1;i++) {substr = dirs[i];try {//substr.trim();substr = new String(substr.getBytes("8859_1"), "GB2312");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}ret=new File(ret, substr);}Log.d("upZipFile", "1ret = "+ret);if(!ret.exists())ret.mkdirs();substr = dirs[dirs.length-1];try {//substr.trim();substr = new String(substr.getBytes("8859_1"), "GB2312");Log.d("upZipFile", "substr = "+substr);} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}ret=new File(ret, substr);Log.d("upZipFile", "2ret = "+ret);return ret;}return ret;}

如果觉得《android zip解压缩(含有子目录)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。