AndroidManifest.xml里添加权限:

  
 

工具类:

public class ZIP {public ZIP(){} /**      * 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 = "";          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(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();              }          }         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 GetFileList(String zipFileString, boolean bContainFolder, boolean bContainFile)throws Exception {          List fileList = new ArrayList();          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. Android全透明状态栏
  2. 对Android中Tab的使用总结
  3. Android(安卓)Adobe工具类
  4. Android动态权限判断以及动态权限申请
  5. android 在自己的程序中添加Widget
  6. android 应用程序使用统计
  7. Android(安卓)APK反编译详解(附图)
  8. android屏蔽home键
  9. Android(安卓)TextView 给文本中指定片段添加自定义点击事件

随机推荐

  1. android点击空白处隐藏键盘(亲测)
  2. Android搜索关键字变色
  3. 使用PhoneGap调用Camera (android)
  4. 使用googleMap 需要获取的apikey方法
  5. android倒计时广告进度条
  6. 【Android(安卓)开发教程】使用Intent发
  7. Android 隐藏及切换显示键盘
  8. Android(安卓)-- 重置Bitmap大小&&Bitmap
  9. 头像及封面的裁剪与预览
  10. android 如何设置dialog的透明度