无法提取从Google Play应用程序下载的obb文件

哈格迪什

我成功实现了apk扩展。并且从Android-> Obb-> PackageName-> com.1.com.packagename.obb下载了obb文件

但是,当我去提取文件时,我遇到了问题。日志中的Eof文件异常Unzip exception2。

异常:-java.io.FileNotFoundException:/storage/sdcard0/.MyApp/[email protected]:打开失败:ENOENT(没有这样的文件或目录)

如果有人有任何想法,请提前答复。

功能从调用提取文件

public void extract()
{

            String packageName = getApplicationContext().getPackageName();

            File root = Environment.getExternalStorageDirectory();
            File expPath = new File(root.toString() + "/Android/obb/" + packageName);

            if (expPath.exists()) {
                String strMainPath = null;
                try {
                    strMainPath = expPath + File.separator + "main."
                        + getPackageManager().getPackageInfo(
                                    getPackageName(), 0).versionCode + "."
                            + packageName + ".obb";


                Log.e("Extract File path", "===>"+strMainPath);

                File f=new File(strMainPath);
                if(f.exists()){
                    Log.e("Extract From File path", "===> not exist");
                }
                else
                {
                    Log.e("Extract From File path", "===> exist");
                }

                flag = extractZip(strMainPath,Environment.getExternalStorageDirectory()+"/"+Constant.FOLDERNAME);

                Log.e("After Extract Zip", "===>"+flag);
                } catch (NameNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

}

功能如下

private boolean extractZip(String pathOfZip,String pathToExtract)
 {


        int BUFFER_SIZE = 1024;
        int size;
        byte[] buffer = new byte[BUFFER_SIZE];


        try {
            File f = new File(pathToExtract);
            if(!f.isDirectory()) {
                f.mkdirs();
            }
            ZipInputStream zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(pathOfZip), BUFFER_SIZE));
            try {
                ZipEntry ze = null;
                while ((ze = zin.getNextEntry()) != null) {
                    String path = pathToExtract  +"/"+ ze.getName();

                    if (ze.isDirectory()) {
                        File unzipFile = new File(path);
                        if(!unzipFile.isDirectory()) {
                            unzipFile.mkdirs();
                        }
                    }
                    else {
                        FileOutputStream out = new FileOutputStream(path, false);
                        BufferedOutputStream fout = new BufferedOutputStream(out, BUFFER_SIZE);
                        try {
                            while ( (size = zin.read(buffer, 0, BUFFER_SIZE)) != -1 ) {
                                fout.write(buffer, 0, size);
                            }

                            zin.closeEntry();
                        }catch (Exception e) {
                            Log.e("Exception", "Unzip exception 1:" + e.toString());
                        }
                        finally {
                            fout.flush();
                            fout.close();
                        }
                    }
                }
            }catch (Exception e) {
                Log.e("Exception", "Unzip exception2 :" + e.toString());
            }
            finally {
                zin.close();
            }
            return true;
        }
        catch (Exception e) {
            Log.e("Exception", "Unzip exception :" + e.toString());
        }
        return false;

    }
哈格迪什

试试这个:-

经过艰苦的努力,终于找到了解决方案。我还通过右键单击ubuntu12.04来压缩带有子文件夹的整个文件夹。

但是之后,我尝试选择所有图像/文件,然后将它们压缩到新文件夹。通过以上代码,我能够成功提取所有文件。

谢谢......

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Google Play下载我的应用程序时,打包文件无效

Google Play节目-您的设备与此版本不兼容,无法下载该应用程序

从Google Play商店下载时,我的应用程序未要求权限。我已在清单文件中指定了位置权限

应用程序的密钥库文件丢失(但启用了Google Play应用程序签名)

如果未从Google Play下载应用程序,则在应用程序计费中是否有效?

如何从Google Play获取下载应用程序时间戳的Android应用程序?可能的?

如果从Google Play下载应用程序,则Facebook登录不起作用

未找到应用程序类从Google Play下载时发生异常

如何知道是否已经从Google Play或Amazon下载了应用程序?

在Google Play iPhone应用程序上下载所有音乐

通过我自己的应用程序的 API 从 google play 获取下载数据

系统从 Google Play 更新下载更新或应用程序时是否可以获取事件?

从Google Play下载我的应用程序时,一些(但不是全部)用户会收到“打包文件未正确签名”的信息

我在 google play 上发布的应用程序在用户下载时会显示一个 android 文件。我怎样才能解决这个问题?

无法在Google Play上上传应用程序捆绑包

使用应用程序脚本将文件下载到Google Drive文件夹

无法通过应用程序下载.7z扩展文件

如何使网络应用程序自动下载 mp3 文件 [Google App Engine 上的 Flask]

在Play商店上发布我的应用程序后,我无法从任何手机下载该应用程序,因为它显示了受支持的设备“ 0”

无法使用下载管理器将文件下载到应用程序数据目录中

从Google Play下载时,Android应用程序崩溃,但在本地开发人员中运行良好-为什么?

通过Android应用程序下载Unity .obb内容

iOS 8.1无法安装OTA Enterprise应用程序-“无法下载应用程序”

ios 9:目前无法下载“ <应用程序名称>”

测试人员无法从Firebase App Distribution下载应用程序

VS Code 无法下载测试应用程序的符号

无法使用adb从Bluestacks应用程序播放器中提取.apk文件

在 Docker 映像中运行应用程序时无法自动提取 zip 文件

Google 云存储 - 从 Android 应用程序下载对象