ホームページ >バックエンド開発 >C++ >C# でディレクトリへの書き込みアクセスを確実にテストするにはどうすればよいですか?

C# でディレクトリへの書き込みアクセスを確実にテストするにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-09 07:37:45704ブラウズ

How Can I Reliably Test Write Access to a Directory in C#?

C# でディレクトリへの書き込みアクセスを検証するためのより堅牢な方法

ディレクトリの書き込み権限を直接確認することは信頼できない可能性があります。 単にアクセス許可をクエリするだけでは、実際の書き込みアクセスは保証されません。 より信頼性の高いアプローチには、書き込み操作を試行することが含まれます。

これが改良された方法です:

<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false)
{
    try
    {
        // Create a temporary file to test write access.  It's automatically deleted.
        using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose)) { }
        return true;
    }
    catch (Exception ex)
    {
        if (throwIfFails)
            throw; // Re-throw the exception for higher-level handling
        else
            return false;
    }
}</code>

この関数は、ターゲット ディレクトリ内に一時ファイルを作成しようとします。 FileOptions.DeleteOnClose により、ファイルは自動的に削除され、痕跡は残りません。 成功は書き込みアクセスを示します。失敗すると false が返されます (throwIfFails が true の場合は例外がスローされます)。 これにより、書き込み機能が直接テストされ、権限チェックのみに依存することによる落とし穴が回避されます。 簡潔でわかりやすいです

以上がC# でディレクトリへの書き込みアクセスを確実にテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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