该进程无法访问该文件,因为它正由另一个进程使用
本文关键字:进程 另一个 访问 文件 因为 | 更新日期: 2023-09-27 18:34:31
public bool ReadFile()
{
string fname = "text.txt";
FileStream fs = null;
fs = new FileStream(fname, FileMode.OpenOrCreate,FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string res = sr.ReadToEnd();
if (res == "1")
return true;
else
return false;
}
public void WriteToFile()
{
string fname = "text.txt";
FileStream fs = null;
fs = new FileStream(fname, FileMode.Open,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write("1");
}
所以它应该像 ReadFile 返回 false 而不是我返回 WriteFile 一样工作。但是当它到达写文件时,它会抛出 IO 期望:
进程无法访问该文件...因为它正被另一个进程使用
读取文件时未关闭文件。
将 FileStream 和 StreamReader 对象放在 using 语句中:
using (var fs = new FileStream(fname, FileMode.OpenOrCreate,FileAccess.Read)) {
using (var sr = new StreamReader(fs)) {
//read file here
}
}
请确保在写入文件时执行相同的操作。
您需要在 ReadFile 方法中释放 StreamReader 对象。StreamReader 继承自 IDisposable,因此您需要释放对象。
查看此链接以获取更多信息:流阅读器类