从 ZipFile 中检索文件名

Posted

技术标签:

【中文标题】从 ZipFile 中检索文件名【英文标题】:Retrieve file names from inside ZipFile 【发布时间】:2018-01-19 04:55:50 【问题描述】:

正如标题所说,我需要从 zip 文件中读取文件名。我将把名字输入一个二维字符串数组(连同其他数据)。这是我想做的一个开始的例子。

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)
    
        //otherArr[count,count] = e; -adds the file, but I need title
    
    return MyArr;

我确定我遗漏了一些简单的东西,但我似乎无法在 ZipFile 类中找到“文件名”属性。导入的包名为 Ionic.Zip。

也许它是某种压缩对象的属性?

【问题讨论】:

是的,那肯定是错误的文档。 @hvd 哎呀。我会更新的。 【参考方案1】:

您需要使用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));
        
     

【讨论】:

看来您正在将 ZipFile 对象转换为 ZipArchive?保留我所拥有的并将其转换为 ZipArchive 并在文件“条目”上使用 .FullName 方法?【参考方案2】:

ZipArchive 课程可能会让您更幸运。

using (ZipArchive archive = ZipFile.OpenRead(zipPath))

     foreach (ZipArchiveEntry entry in archive.Entries)
     
          // The file name is entry.FullName
     
 

【讨论】:

以上是关于从 ZipFile 中检索文件名的主要内容,如果未能解决你的问题,请参考以下文章

使用 ZipFile 类从多个文件的 zip 存档中解压缩文件

zipfile模块——从zip文件中 解压缩

从 zip 中提取文件而不使用 python zipfile 保留***文件夹

Python 文件权限中的 Zipfile

从输入文件创建zipfile

zipfile 写入在 gcloud 中找不到文件