Магическое число в заголовке 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 легко.