問題描述
在多個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");
}
}