c#zip文件 - 最后提取文件

时间:2015-07-15 17:17:06

标签: c# zip

快速提问:我需要提取zip文件并最后提取某个文件。

更多信息:我知道如何使用c#(fw 4.5)提取zip文件。 我现在遇到的问题是我有一个zip文件,里面总有一个文件名(例如)" myFlag.xml"还有一些文件。

由于我需要支持一些监听我提取的文件夹的旧应用程序,因此我想确保XML文件始终是最后提取的。

有没有像#34;排除"对于zip函数,它可以提取除特定文件以外的所有文件,这样我就可以这样做,然后只提取文件?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在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);
        }
    }