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 サイトの他の関連記事を参照してください。