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

本文关键字:文件 提取 最后 zip | 更新日期: 2023-09-27 18:02:47

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

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

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

是否有一些东西像"排除"的zip函数,可以提取所有,但一个特定的文件,所以我可以这样做,然后只提取单独的文件?

谢谢。

c# 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);
        }
    }