c# - 如何使用 DotNetZip 读取 zip 文件内文件夹内的单个文件?

标签 c# dotnetzip

经过一些研究,我发现 DotNetZip 在读取 zip 文件中的文件时非常容易使用。遗憾的是,我确实遇到了一个小问题。

我的 zip 文件设置如下:

  • 顶层:zip 文件本身。
  • 第二层:与zip文件同名的文件夹。
  • 第三层:数据(包括需要的文件)。

使用以下代码,我一直偶然发现找不到条目

using (ZipFile zip = ZipFile.Read(modPath))
{
     string[] temp1 = modPath.Split('\\');
     string mod = temp1[temp1.Length - 1];

     mod = mod.Remove(mod.Length - 6);

     string modinfo = @mod + "/info.json";

     ZipEntry e = zip[modinfo]; // No entry found here
}

我在这里忽略了什么吗?

编辑:添加循环以获取名称

Inside a zip

最佳答案

您可以使用 foreach 遍历 zip 文件的内容,然后找到您的文件。

            using (ZipFile zip = ZipFile.Read(modPath))
            {
                ZipEntry e;
                foreach (ZipEntry k in zip)
                {
                    if (k.FileName.Contains("info.json"))
                    {
                        e = k;
                        break;
                    }
                }
            }

关于c# - 如何使用 DotNetZip 读取 zip 文件内文件夹内的单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464117/

相关文章:

c# - 将许多文本文件读取到字符串数组中 C#

c# - 可以将 MemoryStream 与 FileStreamResult 一起使用吗?

c# - 使用 DotNetZip 设置 Zip 文件的密码

dotnetzip - 我如何知道 zip 文件是否受 dotnetzip 密码保护?

c# - 解压缩受密码保护的文件

c# - 我可以使用 `Semaphore.Release` 作为现成的互锁增量吗?

c# - json 错误错误的 JSON 转义序列

c# - Microsoft.Bcl.Immutable 中的 ImmutableList<T> Remove 方法性能低下

c# - 有没有办法让代码在 ASP.NET Web 应用程序中按时间表运行?

c# - DotNetZip 失败并显示 "stream does not support seek operations"