Магическое число в заголовке GZip неверно. Убедитесь, что вы передаете поток GZip.(. 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.