我正在制作一个程序,在我选择文件并以十六进制文件写入文件后读取文件。问题BinaryReader
在.Close();
之后仍然打开,当我尝试编写文件时,它会给我System.IO.IOException: the process cannot access the file
错误。我错过了什么?
以下是从对话框中选择文件后读取文件的代码。
BinaryReader br = new BinaryReader(File.OpenRead(sfile.FileName));
string pted = null;
br.BaseStream.Position = 0x12;
pted += br.ReadByte().ToString("X2");
if (pted == "01")
{
}
else
{
}
br.Close();
以下是单击按钮时写入文件的代码
Stream st = File.Open(pathTextBox.Text, FileMode.Open);
st.Seek(0x12, SeekOrigin.Begin);
st.WriteByte(0x00);
st.Close();
答案 0 :(得分:0)
首先检查文件是否在此处,然后使用using
指令进行尝试。
答案 1 :(得分:0)
在try catch语句中添加br.close并在关闭后配置二进制阅读器
例如:
try{
br.close();
br.dispose();
}
catch(Exception exp)
{
//Assuming you have included using 'namespace System.Diagnostics'
Debug.WriteLine(exp.ToString());
}
您可以阅读有关BinaryReader here
的更多信息答案 2 :(得分:0)
正如Orgen所说:
if(File.Exists(@pathTextBox.Text)
{
using(Stream st = File.Open(pathTextBox.Text, FileMode.Open))
{
st.Seek(0x12, SeekOrigin.Begin);
st.WriteByte(0x00);
}
}
using()将负责一次性使用。