android解压zip

private static String aikitPathReal = "/obb/";
private static String aikitPathInData = "";

File sdDir = new File(mContext.getFilesDir(), aikitPathReal);///data/user_de/0/org.cocos2d.demo/files/obb/
aikitPathInData = sdDir.getAbsolutePath() + "/";
if (FileUtils.isDirectoryEmpty(aikitPathInData)) {
    FileUtils.createDirectory(aikitPathInData);

    try {
        FileUtils.copyFiles(mContext, "xtts", aikitPathInData);

        FileUtils.unZip(aikitPathInData+"/assets.obb");

        System.out.print("--------2--------");
    } catch (IOException e) {
        e.printStackTrace();
    }
} else {
    System.out.print("------1----------");
}

public static void unZip(String SourceDir) throws IOException {
    unZip(SourceDir, new File(SourceDir).getParent(), "");
}

public static void unZip(String SourceDir, String extDir) throws IOException {
    unZip(SourceDir, extDir, "");
}

public static void unZip(String SourceDir, String extDir, String fileExt) throws IOException {
    ZipFile zip = new ZipFile(SourceDir);
    Enumeration<? extends ZipEntry> entries = zip.entries();
    while (entries.hasMoreElements()) {
        ZipEntry entry = entries.nextElement();
        String name = entry.getName();
        if (!name.startsWith(fileExt)) continue;
        String path = name;
        if (entry.isDirectory()) {
            File f = new File(extDir + File.separator + path);
            if (!f.exists()) f.mkdirs();
        } else {
            String fname = extDir + File.separator + path;
            File temp = new File(fname).getParentFile();
            if (!temp.exists()) {
                if (!temp.mkdirs()) {
                    throw new RuntimeException("create file " + fname + temp.getName() + " fail");
                }
            }
            try {
                path = path.replaceAll("[\r\n]", "");
                FileOutputStream out = new FileOutputStream(extDir + File.separator + path);
                InputStream in = zip.getInputStream(entry);
                byte[] buf = new byte[8 * 1000];
                int count = 0;
                while ((count = in.read(buf)) != -1) {
                    out.write(buf, 0, count);
                }
                out.close();
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }
    zip.close();
    //AppActivity.downloadFileLanguageOver();
}

相关推荐

  1. Android zip

    2023-12-15 13:36:01       52 阅读
  2. linux 如何 zip

    2023-12-15 13:36:01       33 阅读
  3. SpringBoot 中 zip 文件工具类

    2023-12-15 13:36:01       32 阅读
  4. zip、tar、gz文件--linux003

    2023-12-15 13:36:01       18 阅读
  5. android文件压缩与

    2023-12-15 13:36:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 13:36:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 13:36:01       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 13:36:01       87 阅读
  4. Python语言-面向对象

    2023-12-15 13:36:01       96 阅读

热门阅读

  1. 【ubuntu】Linux常用截屏软件

    2023-12-15 13:36:01       59 阅读
  2. C++学习-2023/12/13-C++类型转换

    2023-12-15 13:36:01       50 阅读
  3. Centos系统上nginx安装

    2023-12-15 13:36:01       46 阅读
  4. 设计类的时候面向对象遵循的原则 SOLID

    2023-12-15 13:36:01       58 阅读
  5. 8位LED流水灯设计

    2023-12-15 13:36:01       57 阅读
  6. QT文件介绍

    2023-12-15 13:36:01       57 阅读
  7. Golang 切片相关笔记

    2023-12-15 13:36:01       51 阅读
  8. GPT-4:背景、技术特点、发展、应用与前景

    2023-12-15 13:36:01       62 阅读
  9. 用服务器搭建网站需要做什么

    2023-12-15 13:36:01       58 阅读
  10. Linux常见面试题30题详细答案解析(一)

    2023-12-15 13:36:01       48 阅读