Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用DotNetZip读取zip文件中文件夹中的单个文件?_C#_Dotnetzip - Fatal编程技术网

C# 如何使用DotNetZip读取zip文件中文件夹中的单个文件?

C# 如何使用DotNetZip读取zip文件中文件夹中的单个文件?,c#,dotnetzip,C#,Dotnetzip,经过一些研究,我发现DotNetZip在读取zip文件中的文件时非常容易使用。遗憾的是,我确实遇到了一个小问题 我的zip文件设置如下: 顶层:zip文件本身 第二层:与zip文件同名的文件夹 第三层:数据(包括所需的文件) 使用下面的代码,我总是在找不到条目的情况下跌跌撞撞 using (ZipFile zip = ZipFile.Read(modPath)) { string[] temp1 = modPath.Split('\\'); string mod = te

经过一些研究,我发现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
}
我是不是忽略了什么

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


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

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

问题是我需要循环浏览多个zip文件(相同的结构)。我确实做了一段代码,将获得文件夹名称完成,但它有相同的结果(没有找到条目)你可以添加一个你的文件夹截图。像。。。你是说拉链里面?我没有完全理解你面临的问题。为什么通过指定folderName无法找到文件。你想在哪里循环浏览多个zip文件?让我们来看看。