我已在数据库中存储了多个文件的 blob。用户应该能够单击链接并能够下载所有压缩文件。但在此之前,我想提供一个文件夹结构来对这些文件进行分组。比如说,一个基本文件夹,后面是嵌套文件夹和相关文件。我点击了下面的链接,看起来,我需要首先为其创建一个物理目录结构,然后压缩该结构?
http://www.journaldev.com/957/java-zip-example-to-zip-single-file-and-a-directory-recursively
最佳答案
zip 目录中的文件被抽象为 ZipEntry
Java 中的对象。它们的名称与您解压 zip 文件的目录的相对路径相对应。 zip 文件中的目录只是名称以 /
结尾的条目。 。这样,您还可以将 zip 文件视为二进制数据条目的简单列表,其名称反射(reflect)了目录结构。
因此,您不必在硬盘驱动器上创建文件夹结构并将其压缩,而是可以直接从数据库写入 ZipOutputStream
:
- 将每个文件夹创建为
ZipEntry
没有内容且名称以/
结尾. - 而不是使用
FileInputStream
要从硬盘驱动器上的文件读取,请写入resultSet.getBinaryStream("blobcolumn")
的输出直接进入条目。
关于Java : Zip files in Db within directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096479/