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

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

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

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

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

textual
Листинг программы
  1. public static void Decompress(string currentFileName, string newFileName)
  2. {
  3.     using (FileStream originalFileStream = new FileStream(currentFileName, FileMode.Open))
  4.     {
  5.         using (FileStream decompressedFileStream = File.Create(newFileName))
  6.         {
  7.             using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
  8.             {
  9.                 decompressionStream.CopyTo(decompressedFileStream);
  10.             }
  11.         }
  12.     }
  13. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут