精华内容
下载资源
问答
  • Android压缩zip文件

    2021-05-28 08:26:38
    期望:使项目apk包中的大文件批量数据可以单独作为一个apk来管理,所以需要将Android assets文件夹下的zip打包文件解压到SDCard上。解压缩的操作由于比较耗时,所以新开一个线程执行以下函数/**将assets对应文件解压...

    期望:使项目apk包中的大文件批量数据可以单独作为一个apk来管理,所以需要将Android assets文件夹下的zip打包文件解压到SDCard上。

    解压缩的操作由于比较耗时,所以新开一个线程执行以下函数

    /**将assets对应文件解压到对应的sdcard目录中*/

    public void unPress2Sdcard(String fileName){

    try {

    /**目标路径*/

    String destDir = rootPath + File.separator + fileName;

    /**将压缩文件拷贝到内存卡中*/

    mAssetCopyer.copyBigDataToSD(destDir, fileName);

    /**解压文件到目标路径*/

    unzip(destDir, offlinePath);

    /**删除在内存卡上临时存在的压缩文件*/

    FileUtils.deleteFile(destDir);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    对应的先将assets下的zip文件拷贝到SDCard中,这个是直接在网上找的方法拿来用

    public void copyBigDataToSD(String strOutFileName,String file) throws IOException{

    InputStream myInput;

    OutputStream myOutput = new FileOutputStream(strOutFileName);

    myInput = mContext.getAssets().open(file);

    byte[] buffer = new byte[1024];

    int length = myInput.read(buffer);

    while(length > 0){

    myOutput.write(buffer, 0, length);

    length = myInput.read(buffer);

    }

    myOutput.flush();

    myInput.close();

    myOutput.close();

    }

    然后解压缩操作

    @SuppressWarnings("unchecked")

    public static void unzip(String zipFilePath, String unzipFilePath) throws Exception{

    /**验证是否为空*/

    if (isEmpty(zipFilePath) || isEmpty(unzipFilePath)){

    }

    File zipFile = new File(zipFilePath);

    /**创建解压缩文件保存的路径*/

    File unzipFileDir = new File(unzipFilePath);

    if (!unzipFileDir.exists()){

    unzipFileDir.mkdirs();

    }

    //开始解压

    ZipEntry entry = null;

    String entryFilePath = null;

    int count = 0, bufferSize = 1024;

    byte[] buffer = new byte[buffe 大专栏  Android解压缩zip文件rSize];

    BufferedInputStream bis = null;

    BufferedOutputStream bos = null;

    ZipFile zip = new ZipFile(zipFile);

    Enumeration entries = (Enumeration)zip.entries();

    //循环对压缩包里的每一个文件进行解压

    while(entries.hasMoreElements()){

    entry = entries.nextElement();

    log("log ing5:"+entry.getName());

    /**这里提示如果当前元素是文件夹时,在目录中创建对应文件夹

    * ,如果是文件,得出路径交给下一步处理*/

    entryFilePath = unzipFilePath + File.separator + entry.getName();

    File file = new File(entryFilePath);

    log("~~是否是文件夹:"+file.isDirectory());

    if(entryFilePath.endsWith("/")){

    if(!file.exists()){

    file.mkdir();

    }

    continue;

    }

    /***这里即是上一步所说的下一步,负责文件的写入,不服来咬(≖ ‿ ≖)✧*/

    bos = new BufferedOutputStream(new FileOutputStream(entryFilePath+"/"));

    bis = new BufferedInputStream(zip.getInputStream(entry));

    while ((count = bis.read(buffer, 0, bufferSize)) != -1){

    bos.write(buffer, 0, count);

    }

    bos.flush();

    bos.close();

    }

    }

    用的也是直接网上down下来的,但是在解压缩操作中遇到的是这一句bos = new BufferedOutputStream(new FileOutputStream(entryFilePath));传入的entryFilePath运行的时候却老提示不是文件夹,于是把中间循环解压元素的代码以及一些冗余的逻辑删除了,改成了现在这样,进入循环先判断是否是文件夹(我这里是靠尾部的字符判断的),如果是,在目标路径中创建,开始下一循环,不是,就把文件解压到对应路径。

    最后一步删除SDcard下的压缩文件

    FileUtils.deleteFile(destDir);

    注意:源压缩包必须是zip格式的并且是快速压缩,超高压缩算法不同,解析不了,我是在window上用快压打包的。

    标签:String,zip,buffer,解压缩,entryFilePath,File,new,Android

    来源: https://www.cnblogs.com/sanxiandoupi/p/11713205.html

    展开全文
  • Android 压缩解压zip文件上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩功能。对上次解压缩zip...

    Android 压缩解压zip文件

    上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩功能。对上次解压缩zip功能进行了修改。

    现在也可以解压 那些包含子目录的zip文件。

    /**

    * 解压缩功能.

    * 将zipFile文件解压到folderPath目录下.

    * @throws Exception

    */

    public int upZipFile(File zipFile, String folderPath)throws ZipException,IOException {

    //public static void upZipFile() throws Exception{

    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()){

    Log.d("upZipFile", "ze.getName() = "+ze.getName());

    String dirstr = folderPath + ze.getName();

    //dirstr.trim();

    dirstr = new String(dirstr.getBytes("8859_1"), "GB2312");

    Log.d("upZipFile", "str = "+dirstr);

    File f=new File(dirstr);

    f.mkdir();

    continue;

    }

    Log.d("upZipFile", "ze.getName() = "+ze.getName());

    OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(folderPath, ze.getName())));

    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();

    Log.d("upZipFile", "finishssssssssssssssssssss");

    return 0;

    }

    /**

    * 给定根目录,返回一个相对路径所对应的实际文件名.

    * @param baseDir 指定根目录

    * @param absFileName 相对路径名,来自于ZipEntry中的name

    * @return java.io.File 实际的文件

    */

    public static File getRealFileName(String baseDir, String absFileName){

    String[] dirs=absFileName.split("/");

    File ret=new File(baseDir);

    String substr = null;

    if(dirs.length>1){

    for (int i = 0; i < dirs.length-1;i++) {

    substr = dirs[i];

    try {

    //substr.trim();

    substr = new String(substr.getBytes("8859_1"), "GB2312");

    } catch (UnsupportedEncodingException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    ret=new File(ret, substr);

    }

    Log.d("upZipFile", "1ret = "+ret);

    if(!ret.exists())

    ret.mkdirs();

    substr = dirs[dirs.length-1];

    try {

    //substr.trim();

    substr = new String(substr.getBytes("8859_1"), "GB2312");

    Log.d("upZipFile", "substr = "+substr);

    } catch (UnsupportedEncodingException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    ret=new File(ret, substr);

    Log.d("upZipFile", "2ret = "+ret);

    return ret;

    }

    return ret;

    }

    记得要在AndroidManifest.xml里添加权限:

    展开全文
  • androidzip文件解压public class ZipUtil {/*** 解压到指定路径** @param inputStream* @param outPathString* @throws Exception*/public static void UnZipFolder(InputStream inputStream, String ...

    android中zip文件解压

    public class ZipUtil {

    /**

    * 解压到指定路径

    *

    * @param inputStream

    * @param outPathString

    * @throws Exception

    */

    public static void UnZipFolder(InputStream inputStream, String outPathString) throws Exception {

    ZipInputStream inZip = new ZipInputStream(inputStream);

    ZipEntry zipEntry;

    String szName = "";

    File root = new File(outPathString);

    if (!root.exists()) {

    root.mkdir();

    }

    while ((zipEntry = inZip.getNextEntry()) != null) {

    szName = zipEntry.getName();

    if (zipEntry.isDirectory()) {

    //获取部件的文件夹名

    szName = szName.substring(0, szName.length() - 1);

    File folder = new File(outPathString + File.separator + szName);

    folder.mkdirs();

    } else {

    Log.i("tag", outPathString + File.separator + szName);

    File file = new File(outPathString + File.separator + szName);

    if (!file.exists()) {

    Log.i("tag", "Create the file:" + outPathString + File.separator + szName);

    file.getParentFile().mkdirs();

    file.createNewFile();

    }

    // 获取文件的输出流

    FileOutputStream out = new FileOutputStream(file);

    int len;

    byte[] buffer = new byte[2048];

    // 读取(字节)字节到缓冲区

    while ((len = inZip.read(buffer)) != -1) {

    // 从缓冲区(0)位置写入(字节)字节

    out.write(buffer, 0, len);

    out.flush();

    }

    out.close();

    }

    }

    inZip.close();

    }

    }

    展开全文
  • 如果要在Android手机上解压缩文件,则有两种方法: ES文件浏览器解压缩文件管理器解压缩. 首先打开ES文件浏览器,然后找到要解压缩的压缩包,单击解压缩,然后选择放置解压缩文件的位置,最后确定解压缩. 或打开...

    bf4ae02782d849ee130d6b9ac467930f.png

    如果要在Android手机上解压缩文件,则有两种方法: ES文件浏览器解压缩和文件管理器解压缩. 首先打开ES文件浏览器,然后找到要解压缩的压缩包,单击解压缩,然后选择放置解压缩文件的位置,最后确定解压缩. 或打开手机自己的文件管理器,在压缩包界面上选择一个压缩包进行解压缩,然后长按以选择要解压缩的解压缩功能. 下面以ES文件浏览器4.1.9.8.1和5.1版本的文件管理器为例,介绍华为手机的具体操作.

    01. 首先在手机上下载并安装ES文件浏览器,单击进入主界面

    00dac55a3d561807c0dc3ae8da0e9e9f.png

    02. 在ES文件夹的主界面上,将屏幕向左滑动(沿中间箭头的方向),以进入压缩包选择界面

    90b25942ec3aa2f13101e0f4ccdf7351.png

    808b53f91afa2b66b099d03c76bc2f2d.png

    03. 在此界面中,找到要解压缩的rar或zip压缩包,然后单击要解压缩的压缩包

    495005a2065ed12268b976f9c4e78959.png

    04. 在出现的菜单栏中,选择“解压缩”选项,然后单击下面的“仅一次”

    2b98784cbc0660f308104e068238f6d3.png

    31dfa525f059319e6e6c59b636950bc8.png

    05. 选择另一个位置来放置解压缩的文件,然后单击左下角的“解压缩”

    e1b0f69863c317c61fe28e757495cffb.png

    06. 最后,您可以看到rar或zip软件包已解压缩到一个文件夹中,并且解压缩已完成

    870d4647b0c0f46bd1cf87cc151c2cc8.png

    010203040506

    01,首先打开手机随附的文件管理器,然后选择“压缩包”功能

    235859510e17381cc054134b1a6e2d99.png

    02. 在压缩包界面中找到要解压缩的压缩包zip文件解压器安卓版,长按压缩包以打开菜单

    e0bbb395a536ccca0e6c408014afd9d8.png

    03,然后在下面的菜单中选择“更多”选项

    04,然后单击“解压缩到”

    05. 选择放置解压缩文件的位置zip文件解压器安卓版,然后单击“确定”进行解压缩

    06. 解压缩后,您可以看到压缩包已解压缩到文件夹中

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/ruanjian/article-198039-1.html

    展开全文
  • 关于zip文件压缩及解压缩的方法的文章哟很多,但两者的结合并不多,因此本文记录了Android实现zip文件压缩及解压缩的方法,下面就跟着技术狗小编的步伐来学习吧!DirTraversal.java如下:package com.once;import ...
  • zip文件解压可以使用java的zip库,但是没有实现对加密文件的解压功能,这里可以使用zip4j来实现。具体可以参看该文《Android下zip压缩文件加密解密的完美解决方案 ...
  • Zip文件结构ZIP文件结构如下图所示, File Entry表示一个文件实体,一个压缩文件中有多个文件实体。文件实体由一个头部和文件数据组,Central Directory由多个File header组成,每个File header都保存一个文件实体的...
  • 运用场景:大文件输出效率低,需要压缩文件以缩短运行时间提高体验。文件压缩方法工具(参考链接:http://www.manongjc.com/article/4206.html)/*** 压缩文件和文件夹(SDCard文件压缩)* ...
  • 我有一个应用程序从下拉框(公共共享路径)下载zip文件内容.我使用HttpURLConnection编写下载代码,但它没有按预期工作,而是下载一小部分(下载zip文件显示31 kb但其原始大小为3mb).我正在附上我的代码.请帮我解决这个...
  • 如何将文件附加到现有的zip文件?我已经有了可以创建zip文件的代码,除了一个大问题外,它的效果很好.它现在的工作方式,用户拍摄了一堆图片,最后,所有图片都被添加到一个zip文件中,如果拍摄足够的照片,可能需要一段...
  • /*** 解压缩功能.* 将zipFile文件解压到folderPath目录下.* @throws Exception*/public static intupZipFile(File zipFile, String folderPath) throws ZipException,IOException {ZipFile zfile= newZipFile...
  • 前言其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这篇文章在此记录一下下载zip文件并直接解压的方法,直接上代码,文末有源码下载。下载:import java.io.BufferedInputStream;...
  • 程序首先要获取写外部存储权限:程序:...import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.zip.ZipEntry;import java.util.zip.Zi...
  • android自带zip轻松实现压缩解压开发过程用到了zip压缩包,写了一个工具类,该类可以实现把字符串直接压缩zip格式,省去了写入文件压缩的步骤:/**** @author shx* 压缩和解压缩工具**/public class ZipUtil {/*...
  • 如有不对的地方,望各路大神指点,小女子在此谢过O(∩_...下载文件/*** 下载zip文件** @param url*/private void downloadFile(final String url) {OkHttpClient.Builder builder = new OkHttpClient.Builder().conn...
  • publicclassZipUtil {publicstaticvoidzipFolder(String srcFilePath, String zipFilePath)throwsException {// 创建Zip包java.util.zip.ZipOutputStream outZip =newjava.util.zip.ZipOutputStream(newjava.io....
  • 解压的工具类package ...public class ZipProgressUtil {/**** 解压通用方法** @param zipFileString* 文件路径* @param outPathString* 解压路径* @param listener* 加压监听*/public static void Un...
  • Android 解压zip文件

    2021-06-07 15:22:26
    在开源项目android-pluginmgr开发中处理so时遇到一个问题,zipEntry.getSize()不靠谱,官方注释是这样的package java.util.zip;/*** This class is used to represent a ZIP file entry.** @author David Connelly*/...
  • android解压ZIP文件

    2021-06-02 15:50:22
    在AndroidManifest.xml里添加权限:工具类:public class ZIP {public ZIP(){}/*** DeCompress the ZIP to the path* @param zipFileString name of ZIP* @param outPathString path to be unZIP* @throws Exception...
  • uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name=...
  • note: 如果目录中含有中文名称, 要用substr = new ...这样的语句转换,否则为乱码/*** 解压缩功能.* 将ZIP_FILENAME文件解压ZIP_DIR目录下.* @throws Exception*/public int upZipFile(File zipFile, String fold...
  • zip压缩解压加密器

    2021-06-04 07:19:10
    基本内容zip压缩解压器是一款专业的压缩解压文件管理工具,zip压缩管理器可以打开压缩文件格式有:Rar,Zip,7z,bz2,bzip2,taz,gz,gzip,tar,支持压缩zip文件软件功能-轻松读取本地各种文件...
  • * com.example.ast.androidzipfile * email gerryin@163.com */ public class ZipFileUtil { /** * 解压缩 * 将zipFile文件解压到folderPath目录下. * * @param zipFile zip文件 * @param folderPath 解压到的地址 ...
  • 需要再android里面存放比较大的数据,数据量大概有20+w条,通过sqlite来存放数据,并且存放再raw文件夹中,第一次加载程序的时候,将文件拷贝出来使用,有因为raw里面只能存放1m的文件,所以需要把数据先进行压缩。...
  • 过了n多天后,当再次使用原先博客上写的那篇:去做zip包的解压的时候,出现了原来没有发现的很多问题。...1 的话,对于一些文件不能够解压,修改为:if(dirs.length>0)对于zip压缩包内包含中...
  • 解压zip是一款免费好用的专业手机解压缩软件解压zip支持Rar、Zip、7z等等日常常见格式的解压和压缩,可以轻松快速地将压缩到手机上或将文件制成压缩包。另外,用户还可以通过解压zip轻松查看压缩包的中的各类文档...
  • 解决方法:由于需要跨平台,在iOS和Android都使用,所以经过考虑决定使用zlib库来解压zip文件。zlib github 地址 , 下载完成之后,在解压的文件中拷贝 zlib.h , zconf.h 两个头文件,在contrib --> minizip 文件夹...
  • 依赖compile 'com.leo618:zip:0.0.1'选择开启或者关闭日志打印...压缩/*** 压缩文件或者文件夹** @param targetPath 被压缩文件路径* @param destinationFilePath 压缩后生成的文件路径* @param callback ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,070
精华内容 18,828
关键字:

安卓zip文件解压软件