ファイルへの同時アクセス
別のプログラムによってアクティブに書き込まれているファイルを読み取るには、特有の課題が生じます。 標準的なファイル読み取りメソッドは多くの場合失敗し、ファイルのロック ステータスを示す例外をスローします。
同時ファイル アクセスのソリューション
このようなファイルを正常に読み取るには、同時アクセスに対応する戦略が必要です。 一般的な解決策には、読み取りと書き込みの両方を許可するモードでファイルを開くことが含まれます。
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 中国語 Web サイトの他の関連記事を参照してください。