当前位置: 首页 > 面试题库 >

如何创建具有最大文件大小限制的Java zip存档

窦宏旷
2023-03-14
问题内容

我需要在Java中编写一个算法(对于android应用程序)来读取包含更多文件夹的文件夹,以及每个包含图像和音频文件的文件夹,因此结构如下:
mainDir/categorySubfolder/myFile1.jpg

我的问题是我需要将档案的大小限制为16mb,并且在运行时,根据需要创建尽可能多的档案,以包含主mainDir文件夹中的所有文件。

我从网上尝试了几个示例,并阅读了Java文档,但是我无法理解并按照需要的方式将它们放在一起。有人以前做过这个吗,或者有一个链接或一个例子给我?

我使用递归方法解决了文件读取问题,但是无法编写zip创建逻辑。

我愿意征求建议或提供更好的工作示例。


问题答案:

zip4j是一个很棒的库,可以创建多部分的zip文件。

net.lingala.zip4j.core.ZipFile zipFile = new ZipFile("out.zip");
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
zipFile.createZipFileFromFolder("path/to/source/dir", parameters, true, maximum size);

您可以在他们的网站上找到更多示例。



 类似资料:
  • 提前感谢你的帮助

  • 问题内容: 我正在使用JVM标志运行Java进程,并看到以下输出: 有没有办法解决这个问题? 问题答案: 当无法满足Java堆的分配或永久生成时,命令行选项告诉HotSpot VM生成堆转储。使用此选项运行不会产生任何开销,因此对于OutOfMemoryError需要很长时间才能浮出水面的生产系统很有用。 为了解决您面临的特定问题,可以使用以下纠正措施之一: 措施1: XX:HeapDumpSeg

  • 问题内容: 我正在使用ASP.NET MVC开发站点。CSS文件已增长到88KB,并且有5,000行多一点。我最近注意到,最后添加的样式在浏览器中不存在。CSS文件或行数有大小限制吗? 编辑 :对不起,我忘记提及此问题在Windows 7中同时在FireFox和IE8中发生。 问题答案: 我认为,如果您对CSS文件的大小有疑问,那么该是 重新考虑样式策略的时候了 。CSS中的C代表级联。通常,当C

  • 问题内容: 有没有一种 有效的 方法来用Java创建具有给定大小的文件? 在C语言中,可以使用ftruncate来完成。 大多数人只会将 n个 虚拟字节写入文件,但是必须有一种更快的方法。我在考虑ftruncate以及稀疏文件 … 问题答案: 创建一个新的RandomAccessFile并调用setLength方法,指定所需的文件长度。底层JRE实现应使用您环境中可用的最有效方法。 以下程序 在L

  • 我在Windows 10,我有anaconda安装,但我想创建一个独立的可执行文件在一个新的,干净的最小环境使用python 3.5.所以我做了一些测试: 我创建了一个python脚本test1.py在文件夹testenv只有: 然后我创建了环境,安装了pyinstaller并创建了可执行文件 它创造了我大约6Mb的test1.exe 测试2:我修改了测试1。具体如下: 我在环境中安装了panda

  • 问题内容: 提交时是否有限制文件大小的选项? 例如:文件大小超过500K会产生警告。文件大小超过10M将会停止提交。 我完全知道这个问题,从技术上讲,它是一个重复的问题,但是答案仅是 push上的解决方案,对于我的要求而言为时已晚。 问题答案: 此预提交的挂钩将执行文件大小检查: .git / hooks / pre-commit 上面的脚本必须另存为启用执行权限()。 默认的软(警告)和硬(错误