2012-07-13 55 views
0

我有一個密碼保護的壓縮文件,其中包含另一個pw壓縮文件,我想檢索第二個zip文件夾下的一個文件夾0下的xml文件。但我想在根文件夾(args [0])中有這個xml,你有想法嗎?忽略在一個zip文件中的樹狀結構並用DotNetZip在根文件中提取

它始終在root/0/project.xml中提取,我想要root/project.xml實際上我希望xml位於與第一個zip相同的文件夾中。

using (ZipFile zip = ZipFile.Read(args[0])) { 

    zip.Password = "pass1"; 
    zip.ExtractAll(".",ExtractExistingFileAction.OverwriteSilently); 
    using (ZipFile zip2 = ZipFile.Read("0.xtz")) 
    { 
      ZipEntry e = zip2["0/project.xml"]; 
      e.ExtractWithPassword(".", ExtractExistingFileAction.OverwriteSilently, "pass2"); 

    } 

} 

回答

0

設置FlattenFoldersOnExtract屬性true爲zip文件

+0

實際上它可以用於整個zip。 – xenom 2012-07-13 10:00:25

0

我發現我的情況下,一個特定的答案。如果您知道文件的名稱,訣竅就是隻保留文件名

ZipEntry e = zip2["0/project.xml"]; 
e.Filename="project.xml" 
e.ExtractWithPassword(".", ExtractExistingFileAction.OverwriteSilently, "pass2"); 

你也可以做一個循環,如果你有幾個條目刪除包含「/」的任何文件夾,並只保留文件名。