使用Selenium WebDriver和Java压缩/压缩目录

时间:2013-10-04 12:12:23

标签: java zip selenium-webdriver

我有以下用于压缩文件夹/目录的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)

很好的帮助是值得的。

1 个答案:

答案 0 :(得分:0)

查看Selenuim's Zip的来源,似乎它没有向zip文件添加任何目录条目。它只是添加文件条目。

例如,如果您具有以下目录结构:

D:\\TmpFS\\Dir1\\file1.txt
D:\\TmpFS\\EmptyDir\\     
D:\\TmpFS\\1.txt

只会将\\Dir1\\file1.txt1.txt添加到zip文件中,EmptyDir将不会添加到zip文件中。所以,即使你有几个文件夹,但没有任何文件,如Zip类的代码,不添加任何文件夹,输出zip文件将没有任何条目,因此java.util.zip.ZipOutputStream将抛出关闭zip文件时出错。因此,您应该在任何目录/子目录中至少有一个文件来获取有效的zip文件。