簡體   English   中英

在C#中將exe文件讀取為二進制文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM