2013-10-04 63 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目錄中存在文件時,沒有例外。 –