Estoy tratando de mostrar una lista de todos los archivos encontrados en el directorio seleccionado (y opcionalmente cualquier subdirectorio). El problema que tengo es que cuando el método GetFiles() se encuentra con una carpeta a la que no puede acceder, arroja una excepción y el proceso se detiene.Ignorar carpetas/archivos cuando se niega el acceso a Directory.GetFiles()
¿Cómo ignoro esta excepción (e ignoro la carpeta/archivo protegido) y continúo agregando archivos accesibles a la lista?
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 {}
Otro (marcado como duplicado) pregunta - http://stackoverflow.com/questions/1393178/unauthorizedaccessexception-cannot-resolve-directory-getfiles-failure?noredirect=1 –