public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String zipFileStr="/mnt/sdcard/AndroidUnzip.zip";  //设置Zip文件路径String targetDir=zipFileStr.substring(0, zipFileStr.length()-4);  //设置解压目标文件夹File file=new File(zipFileStr);File dirfile=new File(targetDir);if(!dirfile.exists()){dirfile.mkdirs();}if(file.length()!=0){Log.v("Android Unzip", "Start");try {UnZipFolder(zipFileStr,targetDir);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}Log.v("Android Unzip", "End");}else{Log.v("Android Unzip","File not exist");}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}public static void UnZipFolder(String zipFileString, String outPathString)throws Exception {          android.util.Log.v("XZip", "UnZipFolder(String, String)");          java.util.zip.ZipInputStream inZip = new java.util.zip.ZipInputStream(new java.io.FileInputStream(zipFileString));          java.util.zip.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);                  java.io.File folder = new java.io.File(outPathString + java.io.File.separator + szName);                  folder.mkdirs();                        } else {                            java.io.File file = new java.io.File(outPathString + java.io.File.separator + szName);                  file.createNewFile();                  // get the output stream of the file                  java.io.FileOutputStream out = new java.io.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();              }          }//end of while                   inZip.close();            }//end of func  


添加许可

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

更多相关文章

  1. Android创建文件夹及文件并写入数据
  2. 读取android根目录下的文件或文件夹
  3. Android 功耗优化(5)---Android O 的Doze模式白名单路径
  4. 如何正确获得Android内外SD卡路径
  5. android存储路径问题
  6. Android native/C/C++ 监控文件夹变化
  7. Android中资源文件夹res/raw和assets的使用
  8. Android的支持库 && app/apk包进系统 && 预置so库进系统 && 预置
  9. Android Studio 3.2.2- Android SDK 安装包报错 无法 安装 路径

随机推荐

  1. 经典面试题(19):以下代码将输出的结果是什
  2. 社区leaf学习笔记|06. 游戏玩家注册、登
  3. 社区leaf学习笔记|01. leaf开源游戏服务
  4. 社区leaf学习笔记|07. 游戏玩家注册、登
  5. 社区问答V1.0系统说明
  6. 新建vue-cli项目完整步骤
  7. 游戏思维开发社区问答系统的感受
  8. 社区实时问答系统收费调研
  9. 第8章 0203-静态绑定,接口与抽象类,学习心
  10. 【java】使用jwt进行认证授权