如何使用 DotNetZip 读取 zip 文件中文件夹内的单个文件?
How to read a single file inside a folder inside a zip file with 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
}
我是不是忽略了什么?
编辑:添加了获取名称的循环
您可以使用 foreach 遍历 zip 文件的内容,然后找到您的文件。
using (ZipFile zip = ZipFile.Read(modPath))
{
ZipEntry e;
foreach (ZipEntry k in zip)
{
if (k.FileName.Contains("info.json"))
{
e = k;
break;
}
}
}
经过一些研究,我发现 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;
}
}
}