Bir exe dosyası çıkarmak istiyorum. Exe dosyası bazı dosya ve klasörleri içerir. Ben ayıklanır Winrar kullanarak dosyayı ayıklamak için çalışıyorum ama zaman bazı örnekler kullanarak exe dosyasını ayıklamak için çalışıyorum bu hatayı alıyorum: Biraz örnek kullanılır ve benim sorun için bir sürü googled varGZip başlığındaki sihirli sayı doğru değil. Bir GZip akışında geçirdiğinizden emin olun. (. Exe dosyası)
The magic number in GZip header is not correct. Make sure you are passing in a GZip stream.
ama cevabımı alamadım ve bazı kütüphaneleri de kullandım. .exe
dosya kendiliğinden açılan bir arşiv olduğu için var
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);
}
}
}
}
Bunun nedeni .exe dosyasının _is değil_ geçerli bir .gzip dosyası, ancak _contains_ one olmasıdır. Bu bir yürütülebilir dosyadır. Winrar görünüşte, .gzip'i bulabilir (çünkü böyle bir yürütülebilir dosyayı oluşturabilir, düzenini bilir ve okuyabilir). Unutmayın ki her bir .exe dosyası kendi kendine ayıklanan bir arşivdir. –
öyleyse ne yapmalıyım bana bir örnek kod verebilirim lütfen bana yardımcı olabilirsiniz @JanDvorak –
Keşke yapabilseydim. Seni arayabilirim ama garanti veremem. –