2010-08-03 115 views
0

無論如何DotNet Zip中,我可以用它列出特定目錄中的文件的所有名稱?例如,我可以指定Directory1,然後獲取文件3和FILE4等使用Dot Net Zip列出目錄中的所有文件?

ZipFile 
------- 

File1 
File2 
Directory1 
    File3 
    File4 
Directory2 
    File5 
    File6 

的ZipFile對象只有條目,條目排序,參賽作品文件名...

任何人?Cheeso? :)

+0

你看過這裏嗎? http://stackoverflow.com/questions/2324626/extract-a-zip-file-programmatically-by-dotnetzip-library – 2010-08-03 23:01:01

+0

謝謝愛德華,但我只是想只有文件的名稱:)我想我可能能通過一系列的字符串操作來完成某件事情。文件夾以「/」結束 – 2010-08-04 02:53:47

回答

1

不,是的。沒有EntriesInDirectory集合。但是,選擇「屬於」特定目錄中的條目是字符串比較的一個簡單問題。

在LINQ它看起來像這樣:

var selection = from e in zip.Entries 
    where e.FileName.StartsWith(directoryName) 
    select e; 

在for循環中,它看起來像這樣:

var list = new List<ZipEntry>(); 
foreach (var e in zip.Entries) { 
    if (e.FileName.StartsWith(directoryName)) { 
    list.Add(e); 
    } 
} 

編輯

您可能需要爲案件做轉換靈敏度。在Windows上,大小寫在文件名中沒有意義。

更多解釋:zip格式不會將zip文件中的目錄條目作爲容器對待。目錄條目和文件條目之間沒有容器關係。判斷文件條目「是否屬於」特定目錄的唯一方法是檢查文件條目的全名。如果條目的名稱以相關目錄的名稱開頭,則該條目在目錄中「in」。

相關問題