public class ZipUtil {public ZipUtil(){} /**      * DeCompress the ZIP to the path      * @param zipFileString  name of ZIP      * @param outPathString   path to be unZIP     * @throws Exception      */      public static void UnZipFolder(String zipFileString, String outPathString) throws Exception {          ZipInputStream inZip = new ZipInputStream(new FileInputStream(zipFileString));          ZipEntry zipEntry;          String szName = "";         System.out.println("start");        while ((zipEntry = inZip.getNextEntry()) != null) {                      szName = zipEntry.getName();              System.out.println(szName);            if (zipEntry.isDirectory()) {                  // get the folder name of the widget                  szName = szName.substring(0, szName.length() - 1);                  File folder = new File(outPathString + File.separator + szName);                  folder.mkdirs();              } else {                            File file = new File(outPathString + File.separator + szName);                  file.createNewFile();                  // get the output stream of the file                  FileOutputStream out = new FileOutputStream(file);                  int len;                  byte[] buffer = new byte[1024];                  // read (len) bytes into buffer                  while ((len = inZip.read(buffer)) != -1) {                      // write (len) byte from buffer at the position 0                      out.write(buffer, 0, len);                      out.flush();                  }                  out.close();              }          }        System.out.println("ssssss");        inZip.close();      }          /**      * Compress file and folder     * @param srcFileString   file or folder to be Compress     * @param zipFileString   the path name of result ZIP     * @throws Exception      */      public static void ZipFolder(String srcFileString, String zipFileString)throws Exception {          //create ZIP         ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream(zipFileString));          //create the file         File file = new File(srcFileString);          //compress        ZipFiles(file.getParent()+File.separator, file.getName(), outZip);          //finish and close        outZip.finish();          outZip.close();      }        /**      * compress files     * @param folderString      * @param fileString      * @param zipOutputSteam      * @throws Exception      */      private static void ZipFiles(String folderString, String fileString, ZipOutputStream zipOutputSteam)throws Exception{          if(zipOutputSteam == null)          return;          File file = new File(folderString+fileString);          if (file.isFile()) {              ZipEntry zipEntry =  new ZipEntry(fileString);              FileInputStream inputStream = new FileInputStream(file);              zipOutputSteam.putNextEntry(zipEntry);              int len;              byte[] buffer = new byte[4096];               while((len=inputStream.read(buffer)) != -1)              {                  zipOutputSteam.write(buffer, 0, len);              }              zipOutputSteam.closeEntry();          }          else {              //folder            String fileList[] = file.list();              //no child file and compress              if (fileList.length <= 0) {                  ZipEntry zipEntry =  new ZipEntry(fileString+File.separator);                  zipOutputSteam.putNextEntry(zipEntry);                  zipOutputSteam.closeEntry();                              }              //child files and recursion              for (int i = 0; i < fileList.length; i++) {                  ZipFiles(folderString, fileString+java.io.File.separator+fileList[i], zipOutputSteam);              }//end of for          }        }    /**      * return the InputStream of file in the ZIP     * @param zipFileString  name of ZIP      * @param fileString     name of file in the ZIP      * @return InputStream      * @throws Exception      */      public static InputStream UpZip(String zipFileString, String fileString)throws Exception {          ZipFile zipFile = new ZipFile(zipFileString);          ZipEntry zipEntry = zipFile.getEntry(fileString);          return zipFile.getInputStream(zipEntry);      }      /**      * return files list(file and folder) in the ZIP     * @param zipFileString     ZIP name     * @param bContainFolder    contain folder or not     * @param bContainFile      contain file or not     * @return      * @throws Exception      */      public static List<File> GetFileList(String zipFileString, boolean bContainFolder, boolean bContainFile)throws Exception {          List<File> fileList = new ArrayList<File>();          ZipInputStream inZip = new ZipInputStream(new FileInputStream(zipFileString));          ZipEntry zipEntry;          String szName = "";          while ((zipEntry = inZip.getNextEntry()) != null) {              szName = zipEntry.getName();              if (zipEntry.isDirectory()) {                  // get the folder name of the widget                  szName = szName.substring(0, szName.length() - 1);                  File folder = new File(szName);                  if (bContainFolder) {                      fileList.add(folder);                  }                        } else {                  File file = new File(szName);                  if (bContainFile) {                      fileList.add(file);                  }              }          }        inZip.close();          return fileList;      }  }

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android设定手机的显示模式,横竖屏,是否全
  2. Android日志系统分析之日志设备驱动程序
  3. Android按钮美化
  4. 解决WARNING: APP_PLATFORM android-19 i
  5. Android用户界面与布局
  6. 【eoeAndroid社区索引】android 条形码的
  7. Android应用程序开发入门
  8. android底部栏中间按钮突出
  9. Android(安卓)输入限制
  10. android adb shell 命令大全