C#下多進程共同讀寫同一文件


最近遇到這樣一個需求,用C#寫一個界面,在界面上實時輸出一個日志文件。

實時檢測文件變化,以便刷新界面顯示,可以用FileSystemWatcher組件,響應Changed事件即可。

 

關鍵是在Changed事件響應函數中,如果以傳統只讀模式打開文件句柄,老是會提示: 文件正由另一進程使用,因此該進程無法訪問該文件。

最后發現構造文件流時除了常見的FileMode外,還可以指定FileShare參數,實現控制其他 System.IO.FileStream 對象對同一文件的共享操作,代碼如下:

1 FileStream stream = new FileStream(Directory.GetCurrentDirectory() + "\\log\\log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
2 StreamReader reader = new StreamReader(stream, Encoding.UTF8);
3 String value = reader.ReadToEnd();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM