C# でのディレクトリに対するユーザーの書き込み権限を確認する
ファイル システムの書き込み操作を実行する前に、ターゲット ディレクトリへのユーザーの書き込みアクセスを確認することが重要です。この記事では、この重要なチェックのための信頼できる C# メソッドを紹介します。
既存のメソッドの制限
Directory.GetAccessControl()
を使用するなどの従来のアプローチは信頼できない可能性があります。これらは書き込みアクセスを示している可能性がありますが、ユーザーがディレクトリのセキュリティ設定を表示する権限すら持っていない場合は、UnauthorizedAccessException
をスローすることがよくあります。
堅牢なソリューション: IsDirectoryWritable()
私たちの改良されたメソッド IsDirectoryWritable()
は、潜在的に問題のある権限の取得に依存せずに、書き込みアクセスを直接テストします。
<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false) { try { using (FileStream fs = File.Create( Path.Combine( dirPath, Path.GetRandomFileName() ), 1, FileOptions.DeleteOnClose) ) { } return true; } catch { if (throwIfFails) throw; else return false; } }</code>
この関数は、指定されたディレクトリ内に一時ファイルを作成します。作成が成功すると、書き込みアクセスが確認されます。 この関数は例外を適切に処理し、デフォルトで false
を返しますが、より制御されたエラー処理のために throwIfFails
オプションを提供します。
主な利点:
このアプローチには、既存の方法に比べていくつかの利点があります。
結論:
IsDirectoryWritable()
メソッドは、C# のディレクトリへの書き込みアクセスを検証する効率的で信頼性の高い方法を提供し、ファイル処理操作の堅牢性を強化します。 これは、潜在的にエラーが発生しやすい権限の取得に依存する方法に代わる優れた方法です。
以上がC# でディレクトリへの書き込みアクセスを確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。