Android SD卡中解压.zip文件

来源:互联网 发布:最新直播软件福利 编辑:程序博客网 时间:2024/06/07 09:55
/** * zipFileString .zip的文件路径; outPathString解压输出路径 * 只捕捉了异常,没做处理 */public static boolean UnZipFolder(String zipFileString, String outPathString) {        try {            //路径的拼接需要注意路径分隔符是否在传入            File zipFile = new File(getSdCardRootDirectory()+zipFileString);            if (!zipFile.exists()){                Log.e("upZipFile","文件不存在");                return false;            }            ZipFile zfile = new ZipFile(zipFile);            Enumeration zList = zfile.entries();            ZipEntry ze = null;            byte[] buf = new byte[1024];            while (zList.hasMoreElements()){                ze = (ZipEntry)zList.nextElement();                if (ze.isDirectory()){                    continue;                };                //创建要写入的文件                File newFile = new File(getSdCardRootDirectory()+outPathString);                String[] dirs = ze.getName().split("/");                String substr = null;                for (int i = 0; i < dirs.length-1;i++) {                    substr = dirs[i];                    newFile=new File(newFile, substr);                }                if(!newFile.exists())newFile.mkdirs();                substr = dirs[dirs.length-1];                newFile=new File(newFile, substr);                //根据文件流,写入文件                OutputStream os=new BufferedOutputStream(new FileOutputStream(newFile));                InputStream is=new BufferedInputStream(zfile.getInputStream(ze));                int readLen=0;                while ((readLen=is.read(buf, 0, 1024))!=-1) {                    os.write(buf, 0, readLen);                }                is.close();                os.close();            }            zfile.close();            return true;        }catch (Exception e){            e.printStackTrace();            return false;        }    }public static String getSdCardRootDirectory(){        if (isSdCardExist()){            return Environment.getExternalStorageDirectory().getAbsolutePath();        }        return null;    }public static boolean isSdCardExist(){        return Environment.getExternalStorageState()                .equals(android.os.Environment.MEDIA_MOUNTED);    }
0 0
原创粉丝点击