天天看點

C# 多個程序/程式讀寫檔案 解決辦法問題描述問題代碼問題解決

問題描述

在多個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");
    }
}
           
c#