2013-10-30 106 views
0

我想讀,當它運行如下的EXE文件:如何當它在C#中運行讀一個exe文件

FileStream fs = new FileStream(assemblyPath, FileMode.Open); 
BinaryReader br = new BinaryReader(fs); 
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length)); 
fs.Close(); 

但異常引發:該文件無法訪問,因爲它是被另一個進程佔用。

但是,我可以使用Windows資源管理器複製此文件。所以可以讀取這個文件。我如何在程序中讀取它?謝謝!

+0

Withouth能夠檢查可用的選項:你不能用FileMode.Read打開流嗎? – Recipe

+1

你用'FileStream fs = new FileStream(assemblyPath,FileMode.Open,FileAccess.Read,FileShare.Read)試過嗎? – Alberto

+1

@Alberto你應該發佈這個答案(也許指出'FileAccess' /'FileShare'是什麼,默認是什麼) – sloth

回答

2

嘗試用:

FileStream fs = 
    new FileStream(assemblyPath, FileMode.Open, FileAccess.Read, FileShare.Read); 

FileShare.Read標誌是關鍵,它控制着訪問類型等的FileStream對象可以有相同的文件。