.NET 内の他のアプリケーションによって現在使用されているファイルへのアクセス
.NET 開発者は、他のプロセスによってすでに開かれているファイルにアクセスしようとすると、「アクセスが拒否されました」エラーに頻繁に遭遇します。これは、ファイルがデータ転送または分析にとって重要な場合に特に問題になります。
一般的な解決策には、ファイル共有機能を利用することが含まれます。 .NET
System.IO.FileShare
列挙は、ファイル共有を管理するためのさまざまなオプションを提供します。 FileShare.ReadWrite
を使用すると、読み取りアクセスと書き込みアクセスの両方が許可され、複数のプロセスが同時にファイルを操作できるようになります。
これが例です:
<code class="language-csharp">using System; using System.IO; class Program { static void Main() { try { // Utilize FileShare.ReadWrite for concurrent access FileStream logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader logFileReader = new StreamReader(logFileStream); // Process file content line by line string line; while ((line = logFileReader.ReadLine()) != null) { // Your processing logic here } logFileReader.Close(); logFileStream.Close(); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } }</code>
このメソッドは非排他的なファイル ロックを作成し、複数のプログラムがファイルに同時にアクセスできるようにします。 重要なことは、ファイル処理の完了後に効率的なリソース管理を確保するために、StreamReader
オブジェクトと FileStream
オブジェクトの両方を忘れずに閉じることです。
以上が.NET で他のプロセスが使用するファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。