선택한 디렉토리 (및 선택적으로 하위 디렉토리)에서 발견 된 모든 파일의 목록을 표시하려고합니다. 내가 겪고있는 문제는 GetFiles() 메서드가 액세스 할 수없는 폴더를 가로 질러 오면 예외를 throw하고 프로세스가 중지된다는 것입니다.Directory.GetFiles() 액세스가 거부되었을 때 폴더/파일을 무시합니다.
이 예외를 무시하고 보호 된 폴더/파일을 무시하고 목록에 액세스 가능한 파일을 계속 추가하려면 어떻게해야합니까?
try
{
if (cbSubFolders.Checked == false)
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
foreach (string fileName in files)
ProcessFile(fileName);
}
else
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
foreach (string fileName in files)
ProcessFile(fileName);
}
lblNumberOfFilesDisplay.Enabled = true;
}
catch (UnauthorizedAccessException) { }
finally {}
또 다른 (중복으로 표시) 질문 - http://stackoverflow.com/questions/1393178/unauthorizedaccessexception-cannot-resolve-directory-getfiles-failure?noredirect=1 –