강력한 파일 검색: Directory.GetFiles에서 UnauthorizedAccessException 처리
파일 시스템 작업에서 종종 권한 문제가 발생하여 UnauthorizedAccessException
을 사용할 때 Directory.GetFiles
이 발생합니다. 이 예외는 일반적으로 액세스할 수 없는 단일 디렉터리가 발견되면 전체 프로세스를 중지합니다. 보다 강력한 솔루션은 디렉토리 액세스를 개별적으로 확인하는 것입니다.
아래에 자세히 설명된 이 개선된 접근 방식은 각 디렉터리를 반복하여 액세스 제한을 적절하게 처리할 수 있게 해줍니다.
선택적 파일 검색 솔루션
AddFiles
메서드는 디렉터리를 재귀적으로 처리합니다. 람다 표현식을 사용하여 목록에 파일 경로를 추가하고 액세스가 제한된 디렉터리는 무시합니다.
<code class="language-csharp">private static void AddFiles(string path, IList<string> files) { try { foreach (string file in Directory.GetFiles(path)) { files.Add(file); } foreach (string subdirectory in Directory.GetDirectories(path)) { AddFiles(subdirectory, files); } } catch (UnauthorizedAccessException) { // Ignore access denied errors and continue processing other directories. } }</code>
이 수정된 방법은 UnauthorizedAccessException
블록 내의 try-catch
예외를 효율적으로 처리합니다. 프로그램은 계속 실행되어 충돌 없이 액세스 가능한 디렉터리에서 파일을 수집합니다. 이는 더 나은 제어를 제공하고 액세스 제한으로 인한 조기 종료를 방지합니다. foreach
루프를 사용하면 원래 ToList().ForEach()
접근 방식에 비해 가독성이 향상됩니다.
위 내용은 Directory.GetFiles를 사용할 때 UnauthorizedAccessException을 어떻게 적절하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!