directory.getFiles()のファイルとファイルフォルダーの権限をエレガントに処理します。
列挙ディレクトリ内のファイルを使用すると、保護されたフォルダーまたはファイルが発生した場合、障害物が発生する可能性があります。これにより、異常のためにファイルリストプロセスが突然停止する可能性があります。ただし、これらの制限されたアイテムをエレガントに無視し、アクセス可能なファイルを通過し続ける場合、どうすればよいですか? キーは、
パラメーターを放棄し、再帰を手動で処理することです。各サブディレクトリをチェックすることにより、プロセスをより慎重に制御できます。
Directory.GetFiles()
次のコードフラグメントを考慮してください:
このコードでは、委員会(AllDirectories
)を使用して、見つかった各ファイルの操作を指定します。
をキャプチャし、調査を続行します。
<code class="language-csharp">using System; using System.IO; static class Program { static void Main() { string path = ""; // TODO ApplyAllFiles(path, ProcessFile); } static void ProcessFile(string path) {/* ... */} static void ApplyAllFiles(string folder, Action<string> fileAction) { try { foreach (string file in Directory.GetFiles(folder)) { fileAction(file); } } catch (UnauthorizedAccessException) { // 处理异常 } catch (Exception ex) { // 处理其他异常 } foreach (string subDir in Directory.GetDirectories(folder)) { try { ApplyAllFiles(subDir, fileAction); } catch (UnauthorizedAccessException) { // 处理异常,例如记录错误信息或忽略 } catch (Exception ex) { // 处理其他潜在异常 } } } }</code>
以上がDirectory.GetFiles() の使用時にアクセス許可エラーを無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。