我正在尝试使用Zip4j库压缩一堆文件。我传递了我要压缩的文件的文件路径列表,然后将它们逐个添加到zip文件中。由于某种原因,最后一个文件没有添加。我检查了循环的索引,我很确定它们是正确的。我没有收到任何异常或错误消息。这是我的代码:
// get the path; paths refers to the list of files to compress
String uuidString = UUID.randomUUID().toString();
String path = "H:/public/ZipFiles/" + uuidString + ".zip";
try {
// create the new zip file
ZipFile zipFile = new ZipFile(path);
File fileToAdd;
String message = "";
ZipParameters parameters = new ZipParameters();
// set compression method to store compression
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// Set the compression level
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// add each file to the zipFile
for(int i = 0; i < paths.size(); i++)
{
fileToAdd = new File(paths.get(i));
if(fileToAdd.exists())
{
System.out.println("writing file at " + paths.get(i) + " to the zip file");
zipFile.addFile(fileToAdd, parameters);
}
else
{
message += "File with at path " + paths.get(i) + " was not found.\n";
}
}
} catch (ZipException e) {
e.printStackTrace();
}
添加时会打印所有文件路径。有什么想法吗?
答案 0 :(得分:0)
您没有关闭ZipFile.
答案 1 :(得分:0)
我认为他们自己的网站http://www.lingala.net/zip4j/download.php上的jar
文件存在问题
但是当我从https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j/1.3.2的maven存储库下载它时,它运行良好。