Как узнать тип и количество содержимого .zip - PullRequest
0 голосов
/ 22 апреля 2010

Как я могу получить имена содержимого сжатой папки в C #, то есть имена файлов и папок внутри сжатой папки? Я хочу распаковать zip, используя только GZipStream.

спасибо, Капил

1 Ответ

0 голосов
/ 22 апреля 2010

Вы не можете сделать это, используя GZipStream .Вам понадобится реализация стандарта ZIP, такого как # ziplib .Цитата из MSDN:

Сжатые объекты GZipStream, записанные в файл с расширением .gz, могут быть распакованы с использованием многих распространенных инструментов сжатия;однако этот класс по своей природе не обеспечивает функциональность для добавления файлов или извлечения файлов из архивов .zip.

Пример с #ziplib:

using (var stream = File.OpenRead("test.zip"))
using (var zipStream = new ZipInputStream(stream))
{
    ZipEntry entry;
    while ((entry = zipStream.GetNextEntry()) != null)
    {
        // entry.IsDirectory, entry.IsFile, ...
        Console.WriteLine(entry.Name);
    }
}
...