GZipStream: Неправильное магическое число в заголовке GZip - C#

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Compression;
using System.IO;
 
public class GZip
{
    public static void Compress(String fileSource, String fileDestination, int buffsize)
    {
        using (var fsInput = new FileStream(fileSource, FileMode.Open, FileAccess.Read))
        {
            using (var fsOutput = new FileStream(fileDestination, FileMode.Create, FileAccess.Write))
            {
                using (var gzipStream = new GZipStream(fsOutput, CompressionMode.Compress))
                {
                    var buffer = new Byte[buffsize];
                    int h;
                    while ((h = fsInput.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        gzipStream.Write(buffer, 0, h);
                    }
                }
            }
        }
    }
 
    public static void Decompress(String fileSource, String fileDestination, int buffsize)
    {
        using (var fsInput = new FileStream(fileSource, FileMode.Open, FileAccess.Read))
        {
            using (var fsOutput = new FileStream(fileDestination, FileMode.Create, FileAccess.Write))
            {
                using (var gzipStream = new GZipStream(fsInput, CompressionMode.Decompress))
                {
                    var buffer = new Byte[buffsize];
                    int h;
                    while ((h = gzipStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        fsOutput.Write(buffer, 0, h);
                    }
                }
            }
        }
    }

      public static void Main()
    {
        Decompress("lol.zip", "zzz",1500);
    }

}
Брал код из темы GZipStream. Сжатие, распаковка файла. Хочу попробовать разархивировать zip файл. выдается ошибка в строчке
 while ((h = gzipStream.Read(buffer, 0, buffer.Length)) > 0)
"Неправильное магическое число в заголовке GZip. Передача должна идти в поток GZip." Интересует что конкретно не правильно в вызове, а так же как правильно оформляются пути в с#.

Решение задачи: «GZipStream: Неправильное магическое число в заголовке GZip»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;
using SharpCompress;
using SharpCompress.Archive;
using SharpCompress.Common;
                                                                                                                                                                                                                                                                                   
 
public class paker {
    public static void Main()
    {
        var archive = ArchiveFactory.Open(@"C:\Temp\Ametist.031.7z");
        foreach (var entry in archive.Entries)
        {
            if (!entry.IsDirectory)
            {
                Console.WriteLine(entry.FilePath);
                entry.WriteToDirectory(@"C:\Temp", ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite);
            }
        }
    }
}

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


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

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

9   голосов , оценка 3.889 из 5
Похожие ответы