我有以下用于压缩文件夹/目录的WebDriver Java代码:.zip:
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.io.Zip;
public class ZipDir {
public static void main(String... args){
Zip zip = new Zip();
try {
zip.zip(new File("D:\\TmpFS"), new File("D:\\TmpFS.zip"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码在D驱动器中成功创建了“TmpFS.zip”,但遗憾的是显示了以下异常:
java.util.zip.ZipException: ZIP file must have at least one entry
at java.util.zip.ZipOutputStream.finish(Unknown Source)
at java.util.zip.DeflaterOutputStream.close(Unknown Source)
at java.util.zip.ZipOutputStream.close(Unknown Source)
at com.google.common.io.Closeables.close(Closeables.java:77)
at org.openqa.selenium.io.Zip.zip(Zip.java:90)
at org.openqa.selenium.io.Zip.zip(Zip.java:51)
at packt.selenium.test.chapter6.ZipDir.main(ZipDir.java:11)
很好的帮助是值得的。
答案 0 :(得分:0)
查看Selenuim's Zip的来源,似乎它没有向zip文件添加任何目录条目。它只是添加文件条目。
例如,如果您具有以下目录结构:
D:\\TmpFS\\Dir1\\file1.txt
D:\\TmpFS\\EmptyDir\\
D:\\TmpFS\\1.txt
只会将\\Dir1\\file1.txt
和1.txt
添加到zip文件中,EmptyDir
将不会添加到zip文件中。所以,即使你有几个文件夹,但没有任何文件,如Zip类的代码,不添加任何文件夹,输出zip文件将没有任何条目,因此java.util.zip.ZipOutputStream将抛出关闭zip文件时出错。因此,您应该在任何目录/子目录中至少有一个文件来获取有效的zip文件。