Как обнаружить сжатый файл в C# - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь написать процедуру текстового поиска, которая сканирует каталог на предмет заданного подстановочного файла spe c и сканирует совпадения для заданной строки поиска. Все работает, кроме случаев, когда я получаю файлы ZIP. Вот соответствующий код:

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

Я знаю, что он использует только текстовые подпрограммы, поэтому мне, вероятно, нужно это изменить. Буду признателен за любую помощь в том, где внести изменения / что делать!

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете использовать 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);
...