Магическое число в заголовке GZip неверно. Убедитесь,что вы передаете в потоке GZip.(.файл EXE)

Я хочу извлечь exe-файл. Exe-файл содержит некоторые файлы и папки. Когда я пытаюсь извлечь файл с помощью winrar, он извлекается, но когда я пытаюсь извлечь exe-файл, используя некоторые примеры, я получаю эту ошибку:

магическое число в заголовке GZip неверно. Убедитесь,что вы передаете в потоке GZip.

я использовал некоторые образцы и много гуглил для своей проблемы, но не получил ответа, и я использовал некоторые библиотеки тоже.

я использовал этот код, но та же ошибка:

    public static void Decompress(FileInfo fi)
    {
        // Get the stream of the source file.
        using (FileStream inFile = fi.OpenRead())
        {
            // Get original file extension, for example
            // "doc" from report.doc.gz.
            string curFile = fi.FullName;
            string origName = curFile.Remove(curFile.Length -
                    fi.Extension.Length);

            //Create the decompressed file.
            using (FileStream outFile = File.Create(origName))
            {
                using (GZipStream Decompress = new GZipStream(inFile,
                        CompressionMode.Decompress))
                {
                    // Copy the decompression stream 
                    // into the output file.
                    Decompress.CopyTo(outFile);

                    Console.WriteLine("Decompressed: {0}", fi.Name);

                }
            }
        }
    }

1 ответов


вот так .exe файл представляет собой самораспаковывающийся архив...

вы должны дать DotNetZip попробовать. Из FAQ проекта:

эта библиотека читает самораспаковывающиеся zip-файлы?

да. DotNetZip может читать самораспаковывающиеся архивы (SFX), созданные WinZip и WinZip может читать SFX-файлы, созданные DotNetZip.

вы можете установите его из Nuget легко.