我在这里偶然发现了这个问题
根据ZipEntry的java文档,有时请求zipfile条目的大小只需返回-1
但是,运行命令
$ unzip -l b17c024e-89f1-42f7-a546-91d46610cedb.epub
Archive: b17c024e-89f1-42f7-a546-91d46610cedb.epub
Length Date Time Name
-------- ---- ---- ----
20 01-27-12 11:17 mimetype
2378 04-20-12 10:12 OEBPS/hayat-ghayr.html
6436 02-06-12 11:06 OEBPS/content.opf
112579 01-27-12 11:25 OEBPS/images/978-614-425-313-7-hayat-ghayr-cover.png
182575 01-27-12 11:25 OEBPS/images/978-614-425-313-7-hayat_fmt.png
7757 01-27-12 11:21 OEBPS/template.css
5643 01-27-12 11:18 OEBPS/hayat-ghayr-2.html
20144 01-27-12 11:17 OEBPS/hayat-ghayr-1.html
65543 01-27-12 11:17 OEBPS/hayat-ghayr-3.html
59434 01-27-12 11:17 OEBPS/hayat-ghayr-4.html
66768 01-27-12 11:17 OEBPS/hayat-ghayr-5.html
49117 01-27-12 11:17 OEBPS/hayat-ghayr-6.html
65346 01-27-12 11:17 OEBPS/hayat-ghayr-7.html
74196 01-27-12 11:17 OEBPS/hayat-ghayr-8.html
73998 01-27-12 11:17 OEBPS/hayat-ghayr-9.html
61031 01-27-12 11:17 OEBPS/hayat-ghayr-10.html
68297 01-27-12 11:17 OEBPS/hayat-ghayr-11.html
72084 01-27-12 11:17 OEBPS/hayat-ghayr-12.html
2386 01-27-12 11:17 OEBPS/hayat-ghayr-13.html
61132 01-27-12 11:17 OEBPS/hayat-ghayr-14.html
46320 01-27-12 11:17 OEBPS/hayat-ghayr-15.html
32673 01-27-12 11:17 OEBPS/hayat-ghayr-16.html
88584 01-27-12 11:17 OEBPS/hayat-ghayr-17.html
56474 01-27-12 11:17 OEBPS/hayat-ghayr-18.html
52840 01-27-12 11:17 OEBPS/hayat-ghayr-19.html
80022 01-27-12 11:17 OEBPS/hayat-ghayr-20.html
50781 01-27-12 11:17 OEBPS/hayat-ghayr-21.html
2765 01-27-12 11:17 OEBPS/hayat-ghayr-22.html
265 01-27-12 11:17 META-INF/container.xml
54942 01-27-12 11:17 OEBPS/images/277.png
5549 01-27-12 11:17 OEBPS/toc.ncx
1072 03-23-12 13:28 iTunesMetadata.plist
-------- -------
1529151 32 files
显示所有章节的内容长度。。而且,如果我们解压同一个文件,并用更强大的压缩再次解压。。zipFile java命令返回正确的内容大小
这是zip库的错误还是原始压缩错误?我们怎么知道?
查看如何从内存中的流式zip文件访问zipEntry
ZIP将元html" target="_blank">数据存储在归档文件中的几个不同位置(“本地文件头”、“中心目录”,有时还有“数据描述符”)。只有“本地文件头”位于文件内容的前面,“中心目录”位于归档文件的最末端。只有“中央目录”才是完全正确的,在“本地文件头”中不指定任何大小是完全有效的。
参见中的第4.4.8/4.4.9节https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT这是关于大小字段的
如果设置了通用位标志的第3位,则这些字段在本地标头中设置为零,正确的值放在数据描述符和中央目录中。
“数据描述符”紧跟在条目的压缩内容之后——因此在从不可查找流读取条目的实际内容之前不可用。
使用ZipArchiveInputStream
时,您会在读取“本地文件头”后立即获取ZipEntry
(因为底层流可能无法查找),因此大小信息可能会丢失。ZipFile
在封面下使用随机访问文件
,并且可以读取“中央目录”-unzip
和朋友也是如此-因此他们知道的比ZipArchiveInputStream
更多。
项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现 项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时
问题内容: 我正在尝试创建一个简单的Java程序,该程序从zip文件中的文件读取和提取内容。压缩文件包含3个文件(txt,pdf,docx)。我需要阅读所有这些文件的内容,并且为此使用了Apache Tika。 有人可以帮我实现此功能。到目前为止,我已经尝试过了,但是没有成功 代码段 问题答案: 如果你想知道如何从每个文件中获取文件内容,ZipEntry那实际上很简单。这是一个示例代码: 一旦拥有
我使用Ubuntu OS中的RawTherapee应用程序将RAW文件转换为TIF。 是否存在任何专有问题或与Adobe名称使用有关的任何问题?我喜欢使用开源工具和应用程序。请把你关心的问题告诉我。
我试图创建一个简单的java程序,从zip文件中读取并提取文件内容。Zip文件包含3个文件(txt、pdf、docx)。我需要阅读所有这些文件的内容,为此我正在使用ApacheTika。 有人能帮我实现这个功能吗。到目前为止,我已经试过了,但没有成功 代码片段
问题内容: 我在这篇文章中找到了这个ZipUtils类: 如何使用java压缩文件夹本身 我对其进行了修改,以便可以传递一个zip文件名。但是,它的唯一工作方式是使用硬编码的静态字符串。从数据库中获取zippedFile字符串。我已经将dbZippedFile和hardcodedZippedFile进行了比较,它们都是相同的……也许在FileOutputStream中使用非静态字符串会产生问题吗?