2013-10-04 35 views
0
目录

我有用于压缩文件夹/目录的.zip下面的webdriver Java代码:在d驱动压缩/压缩使用硒的webdriver与Java

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(); 
     } 
    } 
} 

上面的代码创建一个“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

尝试创建zip文件时,目录“D:\\ TmpFS”中是否存在任何文件? – SrikanthLingala

+0

D上没有现有文件:\\ TmpFS –

回答

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文件将不会有任何条目,因此java.util.zip.ZipOutputStream将抛出一个关闭压缩文件时出错。所以,你应该在任何目录/子目录中至少有一个文件来获得一个有效的zip文件。

+0

感谢SrikanthLingala。我现在已经理解TmpFS文件夹中至少存在一个文件。 –

+0

当D:\\ TmpFS目录中存在文件时,没有例外。 –