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 Adobe工具类
  2. Android Studio 几个非常有用的工具
  3. Android之2D图形(圆、直线、点)工具类 (持续更新)
  4. Android 访问权限许可大全
  5. 【工具类】Android获取平板物理唯一标识码
  6. Android【防抖操作的工具类】
  7. android用于定时任务工具类
  8. Android 常用工具类封装
  9. android 模拟器获取root权限的方法

随机推荐

  1. 检查mysql中的行顺序
  2. 请大家帮我解决一下MySQL已经都设置成UTF
  3. 50分求关于执行SQL脚本文件的问题,在线等
  4. mysql数据库基本操作指南
  5. 直接的文件备份和用sqlserver的备份有什
  6. 工作日记(连接SQL Sever 2005服务器数据
  7. 解决异常报错org.mybatis.spring.MyBatis
  8. mysql在渗透中的技巧总结
  9. Sql Server网络配置协议不可用
  10. mysql中MAX()函数MIN()函数