问题描述
在多个C#程序操作同一个文件的时候,当一个C#正在读此文件,另一个C#程序想要写此文件,此时会报错。
`Exception:文件"xxx"正由另一进程使用,因此该进程无法访问此文件。`
问题代码
读文件的代码
using (StreamReader sr = new StreamReader(file_name))
{
Thread.Sleep(100000);
}
写文件代码
using (StreamWriter sr = new StreamWriter(file_name, true))
{
sr.WriteLine("test");
}
问题解决
用FileStream即可解决。
读文件的代码
using (FileStream fileStream = new FileStream(file_name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (StreamReader sr = new StreamReader(fileStream))
{
Thread.Sleep(100000);
}
}
写文件代码
using (FileStream fileStream = new FileStream(file_name, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
{
using (StreamWriter writer = new StreamWriter(fileStream))
{
writer.WriteLine("test");
}
}