assets里的zip压缩文件并解压到指定路径下保存

Posted 随波足流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了assets里的zip压缩文件并解压到指定路径下保存相关的知识,希望对你有一定的参考价值。

有时候发布app,在assets中会自带一些压缩包,打开应用解压放在用户手机sd卡中,

解压这一块就是下面的代码,要判断解压出来的是直接的文件还是一个文件夹,并存储到指定路径下面就好

public  class  UnzipAssets  

    /**
     * 解压Assets中的文件
     * @param context上下文对象
     * @param assetName压缩包文件名
     * @param outputDirectory输出目录
     * @throws IOException
     */
    public static void unZip(Context context, String assetName,String outputDirectory) throws IOException  
        //创建解压目标目录 
        File file = new File(outputDirectory); 
        //如果目标目录不存在,则创建 
        if (!file.exists())  
            file.mkdirs(); 
         
        InputStream inputStream = null
        //打开压缩文件 
        inputStream = context.getAssets().open(assetName); 
        ZipInputStream zipInputStream = new ZipInputStream(inputStream); 
        //读取一个进入点 
        ZipEntry zipEntry = zipInputStream.getNextEntry(); 
        //使用1Mbuffer 
        byte[] buffer = new byte[1024 * 1024]; 
        //解压时字节计数 
        int count = 0
        //如果进入点为空说明已经遍历完所有压缩包中文件和目录 
        while (zipEntry != null)  
            //如果是一个目录 
            if (zipEntry.isDirectory())  
                //String name = zipEntry.getName(); 
                //name = name.substring(0, name.length() - 1); 
                file = new File(outputDirectory + File.separator + zipEntry.getName()); 
                file.mkdir(); 
             else  
                //如果是文件 
                file = new File(outputDirectory + File.separator 
                        + zipEntry.getName()); 
                //创建该文件 
                file.createNewFile(); 
                FileOutputStream fileOutputStream = new FileOutputStream(file); 
                while ((count = zipInputStream.read(buffer)) > 0)  
                    fileOutputStream.write(buffer, 0, count); 
                 
                fileOutputStream.close(); 
             
            //定位到下一个文件入口 
            zipEntry = zipInputStream.getNextEntry(); 
         
        zipInputStream.close(); 
     

以上是关于assets里的zip压缩文件并解压到指定路径下保存的主要内容,如果未能解决你的问题,请参考以下文章

windows如何用cmd命令解压指定的zip文件到指定目录里?

linux解压zip到指定文件夹

PHP解压压缩包文件到指定目录的实现

怎么用PuTTY工具在Linux系统下把压缩文件解压到指定目录文件夹下?怎么写语句?

linux解压带密码的zip的命令是啥

如何用unzip一次解压多个.zip文件 三种方法