如何在 C# 中检测压缩文件

How to Detect a Compressed File in C#

我正在尝试编写一个文本搜索例程,用于扫描目录中的给定通配符文件规范并扫描给定搜索字符串的匹配项。一切正常,除了我访问 ZIP 文件时。相关代码如下:

            string fileText = File.ReadAllText(filePath);
            foreach (string s in lstSearchStrings.Items)
            {
                int cnt = CountSubStrings(fileText, s);
                lstCounts.Items.Add(cnt.ToString());
            }

我知道它只使用基于文本的例程,所以我可能需要更改它。任何关于在哪里进行更改/做什么的帮助将不胜感激!

您可以使用 SharpZipLib 读取内部 zip 文件。

using ICSharpCode.SharpZipLib.Zip;

using (var zipFile = new ZipFile(@"test.zip"))
{
    foreach (ZipEntry entry in zipFile)
    {
        Console.WriteLine(entry.Name);
    }
}

首先您检测使用扩展名的 zip 文件。然后阅读那些使用上述方法。

string fileText = File.ReadAllText(entry.name);