c# zip 文件 - 最后提取文件
c# zip file - Extract file last
小问题:我需要解压 zip 文件,最后解压某个文件。
更多信息:我知道如何使用 c# (fw 4.5) 提取 zip 文件。
我现在遇到的问题是我有一个 zip 文件,里面总是有一个文件名(例如)"myFlag.xml" 和几个文件。
由于我需要支持一些旧的应用程序来监听我正在提取的文件夹,我想确保 XML 文件将始终是最后一个提取的。
是否有类似 "exclude" 的 zip 函数可以提取除特定文件以外的所有文件,这样我就可以做到这一点,然后只提取文件?
谢谢。
您或许可以在 ZipArchive
上尝试 foreach 循环,并排除所有与您的参数不匹配的内容,然后在循环完成后,提取最后一个文件。
像这样:
private void TestUnzip_Foreach()
{
using (ZipArchive z = ZipFile.Open("zipfile.zip", ZipArchiveMode.Read))
{
string LastFile = "lastFileName.ext";
int curPos = 0;
int lastFilePosition = 0;
foreach (ZipArchiveEntry entry in z.Entries)
{
if (entry.Name != LastFile)
{
entry.ExtractToFile(@"C:\somewhere\" + entry.FullName);
}
else
{
lastFilePosition = curPos;
}
curPos++;
}
z.Entries[lastFilePosition].ExtractToFile(@"C:\somewhere_else\" + LastFile);
}
}
小问题:我需要解压 zip 文件,最后解压某个文件。
更多信息:我知道如何使用 c# (fw 4.5) 提取 zip 文件。 我现在遇到的问题是我有一个 zip 文件,里面总是有一个文件名(例如)"myFlag.xml" 和几个文件。
由于我需要支持一些旧的应用程序来监听我正在提取的文件夹,我想确保 XML 文件将始终是最后一个提取的。
是否有类似 "exclude" 的 zip 函数可以提取除特定文件以外的所有文件,这样我就可以做到这一点,然后只提取文件?
谢谢。
您或许可以在 ZipArchive
上尝试 foreach 循环,并排除所有与您的参数不匹配的内容,然后在循环完成后,提取最后一个文件。
像这样:
private void TestUnzip_Foreach()
{
using (ZipArchive z = ZipFile.Open("zipfile.zip", ZipArchiveMode.Read))
{
string LastFile = "lastFileName.ext";
int curPos = 0;
int lastFilePosition = 0;
foreach (ZipArchiveEntry entry in z.Entries)
{
if (entry.Name != LastFile)
{
entry.ExtractToFile(@"C:\somewhere\" + entry.FullName);
}
else
{
lastFilePosition = curPos;
}
curPos++;
}
z.Entries[lastFilePosition].ExtractToFile(@"C:\somewhere_else\" + LastFile);
}
}