ホームページ >バックエンド開発 >C++ >VB.NET および C# で他のプロセスによってロックされたファイルにアクセスするにはどうすればよいですか?

VB.NET および C# で他のプロセスによってロックされたファイルにアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-16 15:42:09436ブラウズ

How Can I Access Files Locked by Other Processes in VB.NET and C#?

他のプロセスによってロックされたファイルにアクセスするための VB.NET および C# ソリューション

複数のプロセスで同時に使用されるファイルにアクセスすると、多くの場合、恐ろしい「使用中」例外が発生します。 このガイドでは、他のアプリケーションによってロックされている場合でも、VB.NET および C# でファイルを読み取り、変更するための信頼できる方法を提供します。

VB.NET および C# での FileShare の使用

簡単な解決策には、ファイル ストリームを開くときに FileShare パラメータが必要です。 FileShare.ReadWrite を設定すると、アプリケーションがファイル アクセスを共有する意思があることを示します。

VB.NET の例:

<code class="language-vb.net">Dim strContents As String
Dim objReader As StreamReader
objReader = New StreamReader(FullPath, FileShare.ReadWrite)
strContents = objReader.ReadToEnd()
objReader.Close()</code>

C# の例:

<code class="language-csharp">using (var objReader = new StreamReader(FullPath, FileShare.ReadWrite))
{
    var strContents = objReader.ReadToEnd();
}</code>

代替アプローチ: FileStream

を採用する

FileStream クラスは、ファイル アクセスをより詳細に制御できます。 この例はその使用法を示しています:

<code class="language-csharp">using (var logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var logFileReader = new StreamReader(logFileStream))
{
    while (!logFileReader.EndOfStream)
    {
        string line = logFileReader.ReadLine();
        // Process each line
    }
}</code>

このコードは、FileStreamFileMode.Open、および FileAccess.Read を指定して、FileShare.ReadWrite を使用してファイルを開きます。 StreamReader は、ファイルのコンテンツを効率的に読み取ります。

出典の帰属

FileStream アプローチは次のものから適応されています: https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12

以上がVB.NET および C# で他のプロセスによってロックされたファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。