在c#中读取exe文件作为二进制文件

Vin*_*gar 1 c# exe binaryfiles

我想在我的c#代码中读取exe文件,然后解码为base64.

我这样做

FileStream fr = new FileStream(@"c:\1.exe", FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader sr = new StreamReader(fr);
fr.Read(data, 0, count);
Run Code Online (Sandbox Code Playgroud)

但问题是,当我写这个文件时,写入的文件被破坏了.在十六进制车间分析代码值十六进制中的值被替换为0.

现在请建议解决方案.谢谢

Dar*_*rov 7

StreamReader只能用于文本文件.使用二进制文件,您需要直接使用FileStream或:

byte[] buffer = File.ReadAllBytes(@"c:\1.exe");
string base64Encoded = Convert.ToBase64String(buffer);
// TODO: do something with the bas64 encoded string

buffer = Convert.FromBase64String(base64Encoded);
File.WriteAllBytes(@"c:\2.exe", buffer);
Run Code Online (Sandbox Code Playgroud)