首页 > 代码库 > android 压缩与解压方法

android 压缩与解压方法

/**     * 解压缩功能     *      * @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()){                 String dirstr = folderPath + ze.getName();                 dirstr = new String(dirstr.getBytes("8859_1"), "GB2312");                 File f=new File(dirstr);                 f.mkdir();                 continue;             }             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 = new String(substr.getBytes("8859_1"), "GB2312");                                      } catch (UnsupportedEncodingException e) {                     // TODO Auto-generated catch block                     e.printStackTrace();                 }                 ret=new File(ret, substr);                              }             if(!ret.exists())                 ret.mkdirs();             substr = dirs[dirs.length-1];             try {                 substr = new String(substr.getBytes("8859_1"), "GB2312");             } catch (UnsupportedEncodingException e) {                 // TODO Auto-generated catch block                 e.printStackTrace();             }             ret=new File(ret, substr);             return ret;         }         return ret;     }

 

android 压缩与解压方法