2017-08-10 60 views
1

就像標題所說,我需要從zip文件中讀取文件的名稱。我將把這些名稱提供給一個2D字符串數組(以及其他數據)。這是我想要做的一個開始的例子。從ZipFile中檢索文件名

private String[,] ArrayFiller(ZipFile MyZip) 
{ 
    int count = 0; 
    ZipFile zipfile = ZipFile.Read(); 
    int zipSize = MyZip.Count; 
    string[,] MyArr = new string[zipSize, zipSize]; 

    foreach (ZipEntry e in zipfile.EntriesSorted) 
    { 
     //dbcrArr[count,count] = e; -adds the file, but I need title 
    } 
    return MyArr; 
} 

我敢肯定我錯過了簡單的東西,但我似乎無法在ZipFile類中找到「文件名」屬性。導入的軟件包稱爲Ionic.Zip。

也許它是某種壓縮對象的屬性?

+0

是的,那絕對是錯誤的文檔。 – hvd

+0

@ hvd哎呀。我會更新它。 – coinbird

回答

2

您需要使用ZipArchive類。從MSDN

using (ZipArchive archive = ZipFile.OpenRead(zipPath)) 
    { 
     foreach (ZipArchiveEntry entry in archive.Entries) 
     { 
      Console.WriteLine(entry.FullName); 
      //entry.ExtractToFile(Path.Combine(destFolder, entry.FullName)); 
     } 
    } 
+0

所以它看起來像你將ZipFile對象轉換爲ZipArchive?保留我現在擁有的東西,只是將其轉換爲ZipArchive並在文件「entry」中使用.FullName方法? – coinbird

3

你可能有更多的運氣與ZipArchive類。

using (ZipArchive archive = ZipFile.OpenRead(zipPath)) 
{ 
    foreach (ZipArchiveEntry entry in archive.Entries) 
    { 
      // The file name is entry.FullName 
    } 
}