Разархивация GZipStream - C#

Узнай цену своей работы

Формулировка задачи:

Нужно разархивировать предварительно заархивированный файл
byte[] decompressedBytes;
                    using (FileStream fileToDecompress = File.Open("1.txt", FileMode.Open))
                    {
                        using (GZipStream decompressionStream = new GZipStream(fileToDecompress, CompressionMode.Decompress))
                        {
                            decompressionStream.Read(decompressedBytes, 0, decompressionStream.Length);
                        }
                    }
                    using (FileStream fstream = new FileStream("2.txt", FileMode.Create))
                    {
                        fstream.Write(decompressedBytes, 0, decompressedBytes.Length);
                    }
Но вот дилемма, откуда мне узнать размер первоначального файла? А если я решу узнать размер потока, то выдаст исключение decompressionStream.Length - это свойство не поддерживается Есть идеи что можно сделать?

Решение задачи: «Разархивация GZipStream»

textual
Листинг программы
public static void Decompress(string currentFileName, string newFileName)
{
    using (FileStream originalFileStream = new FileStream(currentFileName, FileMode.Open))
    {
        using (FileStream decompressedFileStream = File.Create(newFileName))
        {
            using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
            {
                decompressionStream.CopyTo(decompressedFileStream);
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5