[英]Read exe file as binary file in C#
我想用我的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);
但是問題是,當我寫入此文件時,寫入的文件已損壞。 在十六進制中進行分析時,十六進制的代碼值由0代替。
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);
StreamReader官方文檔:
“實現了一種TextReader,該TextReader以特定的編碼從字節流中讀取字符。”
它用於文本,而不是二進制文件。 僅嘗試Stream或BinaryReader。(為什么要嘗試StreamReader?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.