ホームページ >バックエンド開発 >C++ >例外を使用せずにC#でファイルロックをプロアクティブに検証するにはどうすればよいですか?

例外を使用せずにC#でファイルロックをプロアクティブに検証するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-02-02 22:16:11706ブラウズ

How Can I Proactively Verify File Locks in C# Without Using Exceptions?

c#

でファイルロックを確認するときに例外を回避します

C#でファイルアクセスの競合を管理するのは難しい場合があります。 この記事では、例外処理に依存せずにファイルの可用性を確認するためのプロアクティブな方法を紹介し、より堅牢なソリューションを提供します。 現在書かれているファイルにアクセスしようとすると問題が発生し、「使用中のファイル」エラーにつながります。

FileAccess.Readを使用したプロアクティブなアプローチ

例外処理に依存する代わりに、

を使用してファイルの可用性を積極的に検証できます。この改訂されたコードスニペットは、より効率的で信頼性の高い方法を示しています:FileAccess.Read

<code class="language-csharp">protected virtual bool IsFileLocked(FileInfo file)
{
    using (FileStream stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None))
    {
        stream.Close();
        return false; // File is accessible
    }
    catch (IOException)
    {
        // File is locked or unavailable
        return true; 
    }
}</code>

説明

コードは、排他的アクセス(

)を使用して、読み取り専用モード(FileAccess.Read)でファイルを開くことを試みます。別のプロセスがファイルにロックを保持している場合(たとえば、書き込み)、FileShare.Noneメソッドが失敗し、Openをスローします。 IOExceptionブロックはこれを処理し、ファイルがロックされていることを示すためにtry-catchを返します。 ファイルの開くことが成功すると、ファイルが利用可能であり、trueが返されます。 このアプローチは、パフォーマンスのオーバーヘッドと例外処理のみに依存することに関連する潜在的な問題を回避します。

以上が例外を使用せずにC#でファイルロックをプロアクティブに検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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