将一个文件夹压缩成一个zip包,可应用于项目文件夹打包成zip, 文件夹过滤了目录中的空文件夹,因此,空文件夹不会被打包到zip包中.
由于本人JS知识有限,JAVA也不懂, 导致该函数, 打包大型文件时, 非常慢,性能低下. 如果@admin 有好的方法, 可以发一下, 谢谢.

importClass(java.io.File);
importClass(android.net.Uri);
importClass(java.lang.System);
importClass(java.io.FileInputStream);
importClass(java.io.FileOutputStream);
importClass(java.io.OutputStream);
importClass(java.util.zip.ZipEntry);
importClass(java.util.zip.ZipOutputStream);var srcPath = "/sdcard/脚本/";
var zipFilePath = "/sdcard/autoJS.zip"dirToZip(srcPath, zipFilePath);/*** 将一个文件夹压缩成zip包 * @param {string} srcDir 要压缩的文件夹(绝对路径)* @param {string} out 压缩后输出的zip文件(绝对路径)*/
function dirToZip(srcDir, out) {var zipPath = new FileOutputStream(new File(out));var path = new File(srcDir);var srcDirParent = path.getParent();var start = System.currentTimeMillis();var zos = null ;try {zos = new ZipOutputStream(zipPath);var sourceFile = new File(srcDir);compress(sourceFile, zos, sourceFile.getName());var end = System.currentTimeMillis();log("压缩完成,耗时:" + (end - start) +" ms");} catch (e) {throw ("zip error from ZipUtils"+e);} finally {if(zos != null){try {zos.close();} catch (e) {log(e);}}}function compress(sourceFile, zos, name) {if(files.isFile(sourceFile)){zos.putNextEntry(new ZipEntry(name));var len;var put = new FileInputStream(sourceFile);while ((len = put.read()) != -1){zos.write(len);}zos.closeEntry();put.close();} else {var listFiles = getListFilePath(sourceFile);for (let i in listFiles) {var fileName = new File(listFiles[i]);compress(listFiles[i], zos, fileName.getParent().split(srcDirParent)[1] + "/" + fileName.getName());}}}function getListFilePath(i) {i = i.toString();function r(i) {var e = files.listDir(i);for (var s in e) {if ("/" == i.charAt(i.length - 1)) var a = i + e[s]; else var a = i + "/" + e[s];files.isDir(a) ? r(a) : t.push(a);}}var t = [];return r(i), t;}
}

//解压zip文件
com.stardust.io.Zip.unzip(new java.io.File("解压zip文件的路径"), new java.io.File("要把zip解压到 某个文件夹的路径"));

【Auto.js】[zip压缩] 将文件夹压缩成zip包相关推荐

  1. php将文件夹打包zip文件,php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  2. php 文件夹打包_php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  3. Windows将文件夹打包成war包

    Windows将文件夹打包成war包 打开cmd命令提示符,进入要打包的文件夹,使用命令:jar -cvf 文件名.war *    ,(注意后面的'*'号与war前面有空格)生成的war包就在文件夹 ...

  4. Huffman文件压缩之文件夹压缩

    思路   应用huffman是带权路径最小二叉树这个性质,完成的文件压缩.我们可以应用这个性质.让一个文件中,每个字符出现的次数作为权值.这样离根节点越近的节点,它的字符出现的次数就越多.然后根据这个 ...

  5. java 文件夹打包成zip(带有嵌套的那种文件夹)

    文件夹中还嵌套有其他的文件夹或者文件 要进行压缩成zip 代码参考如下: public void zipFile() throws IOException {String sourceFile = & ...

  6. php 复制文件夹并压缩到最小_php将文件夹打包成zip文件

    function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while(($filename=read ...

  7. 用Python将文件夹打包成Zip并备份至U盘

    需求概要 将maven工程打包并备份至U盘.为了简单起见,只需备份工程中的src文件夹和pom.xml文件即可. 放码过来 import os import zipfile import dateti ...

  8. 如何将文件夹打包成jar包

    1.建立MANIFEST.MF (在要打包的文件或者文件夹目录下) 2. 并在文件中添加如下内容: ================== Manifest-Version: 1.0 Main-Clas ...

  9. linux 解压文件夹下所有zip文件

    解压上述文件. find . -name '*.zip' # 查看当前文件夹下所有zip文件 cd zip文件的父级文件夹目录 unzip '*.zip' # 运行此命令即可 还有一种方法, 直接使用 ...

最新文章

  1. nodejs文件服务器断点续传,基于Nodejs的大文件上传之断点续传
  2. Xbox One:微软商店中都是Xbox One的主题
  3. 边缘计算:安全保护 快速响应
  4. ios 百度地图指定区域_iOS开发(第三方使用)——百度地图的简单使用(定位与当前位置的显示)...
  5. 开发日记-20190417 关键词 代码之间耦合度的一刀两断 (思路篇)
  6. 趣味编程:函数式链表的快速排序(参考答案)
  7. settype COM_LOCAT_ADDR出现在CRM change document里的原因
  8. IBASE logical view和physical view
  9. NSAssert和NSParameterAssert
  10. 上班骚扰男同事被抓到......
  11. 去除vue项目中的#及其ie9兼容性
  12. Redis面试常问2-- 从海量数据里查询某一固定前缀的key? SCAN cursor
  13. 语音识别——触发字检测
  14. JVM常量池和八种基本数据及字符串
  15. 【图像评价】基于matlab无参考图像质量评价NIQE【含Matlab源码 681期】
  16. ADB工具包下载及安装
  17. 2022-01-08:数组中只有0和1,每过1代,0旁边只有1个1,当前0会变成1。每过1代,0旁边有2个1,当前0还是0。 比如10001,经过1代,会变成11011,再过1代,还是11011 。
  18. PG in not in系列方案比较
  19. 华硕服务器系统安装win7系统教程,华硕重装系统教程
  20. 理解statsmodels中OLS对应基金alpha、beta、R-squared

热门文章

  1. java中浮点数的表示_java 浮点数表示法
  2. powerbi使用说明_PowerBI-Cli 工具使用指南
  3. golang 开发 Struct 转换成 map 两种方式比较
  4. 工具类--Excel 导出poi
  5. 什么是Java Marker Interface(标记接口)
  6. 防火墙及其功能(转)
  7. SQL记录-PLSQL异常
  8. 2.6 mailx邮件
  9. JAVA(小技巧--List)
  10. 微信公众平台开发(44)历史上的今天