同時存取檔案
讀取由另一個程式主動寫入的檔案是一個獨特的挑戰。 標準文件讀取方法經常失敗,拋出指示文件鎖定狀態的例外狀況。
並發文件存取解決方案
要成功讀取這樣的文件,您需要一個適應並發存取的策略。 常見的解決方案是以允許讀取和寫入的模式開啟檔案。
C#/.NET 中的實作
以下 C# 程式碼片段使用 FileStream
和 StreamReader
示範了此方法:
<code class="language-csharp">using System; using System.IO; namespace ConcurrentFileReader { class Program { static void Main(string[] args) { string filePath = "c:\test.txt"; // Open the file for reading and writing concurrently FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader reader = new StreamReader(fileStream); // Read and process the file line by line while (!reader.EndOfStream) { string line = reader.ReadLine(); // Process the line Console.WriteLine(line); } // Close resources reader.Close(); fileStream.Close(); } } }</code>
關鍵是FileShare.ReadWrite
。這可確保檔案以共用模式打開,從而允許同時進行讀寫操作而不會中斷。 該程式現在可以讀取檔案的內容,同時另一個進程繼續寫入該檔案。 請注意,讀取的資料可能不完整或僅反映給定時刻文件內容的一部分,具體取決於寫入過程的活動。
以上是如何讀取另一個程式正在使用的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!