Tag: zip

zip并在java中解压缩

我知道这是一个简单的任务,但在更改我的代码后它停止工作,我无法取回它! 我使用两个函数来压缩和解压缩,即使它实际上做的是“jar”和“unjar”,但这不应该产生巨大的差异 public static void zipit(File[] infiles, JarOutputStream jos) throws Exception { zipit(infiles,””, jos); } public static void zipit(File[] infiles, String root, JarOutputStream jos) throws Exception { byte[] buffer = new byte[4096]; for(int i=0; i<infiles.length; i++) { // recursive call for subfolders… temporary if(infiles[i].isDirectory()) { zipit(infiles[i].listFiles(), infiles[i].getName() + "/", jos); continue; } // create string […]

附加zip存档调试

所以我有兴趣将文件附加到zip存档,我遇到了一些之前问过这个问题的用户,而另一个用户给出了这段代码片段作为该问题的解决方案: public static void updateZip(File source, File[] files, String path){ try{ File tmpZip = File.createTempFile(source.getName(), null); tmpZip.delete(); if(!source.renameTo(tmpZip)){ throw new Exception(“Could not make temp file (” + source.getName() + “)”); } byte[] buffer = new byte[4096]; ZipInputStream zin = new ZipInputStream(new FileInputStream(tmpZip)); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(source)); for(int i = 0; i -1; read […]

Java:具有非静态文件名的Zip文件

我在这篇文章中找到了这个ZipUtils类: 如何使用java压缩文件夹本身 我修改了它,所以我可以传递一个zip文件名。 但是,它的唯一工作方式是使用硬编码的静态字符串。 zippedFile字符串是从数据库中获取的。 我已经比较了dbZippedFile和hardcodedZippedFile,它们都是相同的…也许在使用FileOutputStream的非静态字符串时会出现问题? 尝试压缩目录时只会出现此问题(一个文件正常工作)。 有谁知道我做错了什么或有一个好的选择? 它永远不会抛出错误。 它只是无法创建文件。 在代码片段中,如果将zippedFile.getPath()替换为硬编码字符串表示forms(即“D:\\ dir \\ file.zip”),则可以正常工作。 码: DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd_HH-mm-ss”); Date date = new Date(); String zipName = name+ “_” + dateFormat.format(date) + “.zip”; zippedFile = new File(archive, zipName); if (zippedFile .exists()) { zippedFile .delete(); } ZipUtils.main(dirToZip.getPath(), zippedFile.getPath()); 类: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; […]

读取ZIP文件会产生“无效的LOC标头”exception

我有一个大的zip文件,4.3G。 它包含大约100k条目。 我正在Linux上使用Java 1.6.0_14,Ubuntu 32位阅读它,并获得以下exception。 java.util.zip.ZipException: invalid LOC header (bad signature) at java.util.zip.ZipFile.read(Native Method) at java.util.zip.ZipFile.access$1200(ZipFile.java:29) at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:447) at java.util.zip.ZipFile$1.fill(ZipFile.java:230) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) at java.io.FilterInputStream.read(FilterInputStream.java:90) 我没有任何其他ZIP文件的问题(处理它们的代码非常成熟)我已经validation我可以使用’unzip’从命令行正确解压缩zip文件。 有什么线索吗? 谢谢!

Java创建的.zip文件不支持中文(utf-8)

我想使用Java(jdk,ant.jar或commons-compress)创建.zip文件。 但是如果ZipEntry的名称包含非英语(例如中文,日文),它将在WinRAR或Windows Compress中显示不可读的代码(在WinRAR中正确压缩显示)。 谁能帮我!!!

使用java.util.zip写入zip文件时,带有日文字符的文件名将变为垃圾。*

我有一个名称包含日文字符的目录,我需要使用java.util.zip中的zip utils将其写入zip文件。 编写zip文件成功,但是当我用Windows的内置压缩文件实用程序或7-Zip打开生成的zip文件时,名称中带有日文字符的目录显示为一堆垃圾字符。 我的系统上安装了日语/东亚语言包 – 我可以用日语名创建目录,所以这不是问题。 有趣的是,如果我编写一个单独的脚本来使用java.util.zip读取生成的zip文件,目录名称是正确的,我可以将zip的内容提取到具有日文字符的相应命名目录中。 但我不能使用我尝试过的商业拉链工具,这无疑是我们的客户想要做的。 关于导致这个问题的原因以及如何解决这个问题的想法? 我知道这个bug ,但我仍然需要针对这种情况的解决方法。

Java:通过HTTP流式传输Zipfile的内容

我有相当多的可流传输数据(> 100MB),为了压缩,我想在http服务器上托管一个zipfile。 所以这个zipfile包含一个文件。 现在有可能java-client通过http流式传输数据,即使它是打包在zipfile中的吗? 根据维基百科,ZIP不是顺序… http://en.wikipedia.org/wiki/ZIP_(file_format)#Structure 如果这仍然可能以某种方式,那么如何? 编辑:关于gzip:正如我所说,我使用自定义的Java客户端(不是webbrowser)是java http实现中的gzip吗?

如何在java中的zip文件中提取特定文件

我需要在系统中向客户提供zip文件的视图,并允许客户下载选择的文件。 解析zip文件并在网页上显示。 并记住后端的每个zipentry位置(例如file1从字节100宽度长度1024字节开始)。 客户单击下载按钮时下载指定的文件。 现在我已经记住了所有的zipentry位置,但有没有java zip工具来解压缩zip文件的指定位置? API就像解压缩(file,long entryStart,long entryLength);

Java支持哪个版本的ZIP(1.6 – 或任何版本)

ZIP格式有多个版本( http://en.wikipedia.org/wiki/ZIP_%28file_format%29#Version_history )。 目前还不清楚Java支持哪个版本。 在ZipOutputStream的源代码中,它定义了一个与标题“读取的最小版本”部分相关的常量,但我并不是100%肯定这是对我的问题的答案进行反向工程的正确方法。 谁能在这里提供更好的建议? 谢谢。

阅读zip文件中的zip文件

我有zip文件在zip文件中的文件夹内,请建议我如何使用zip输入流阅读它。 例如: abc.zip | documents/bcd.zip 如何在zip文件中读取zip文件?