我想从文件夹创建一个 zip 存档并保留(非空)目录的条目。
在下面的代码中,FileInputStream
当FileNotFoundException
一个目录被传递给AddToZip
. 我试图围绕字节的实际写入设置一个条件,但这会使整个存档无效。如何将目录条目添加到存档?
public static void addToZip(File directoryToZip, File file, ZipOutputStream zos) throws FileNotFoundException,
IOException {
String zipFilePath = file.getCanonicalPath().substring(directoryToZip.getCanonicalPath().length() + 1,file.getCanonicalPath().length());
System.out.println("Writing '" + zipFilePath + "' to zip file");
ZipEntry zipEntry = new ZipEntry(zipFilePath);
zos.putNextEntry(zipEntry);
FileInputStream fis = new FileInputStream(file); // Throws a FileNotFoundException when directory
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zos.write(bytes, 0, length);
}
zos.closeEntry();
fis.close();
}