Compruebe si el directorio es accesible en C #? [duplicar]

Posible duplicado:
.NET - Compruebe si el directorio es accesible sin manejo de excepciones

Estoy haciendo un pequeño explorador de archivos en Visual Studio 2010 con NET 3.5 y C #, y tengo esta función para verificar si un directorio es accesible:

RealPath=@"c:\System Volume Information";
public bool IsAccessible()
{
    //get directory info
    DirectoryInfo realpath = new DirectoryInfo(RealPath);
    try
    {
        //if GetDirectories works then is accessible
        realpath.GetDirectories();                
        return true;
    }
    catch (Exception)
    {
        //if exception is not accesible
        return false;
    }
}

Pero creo que con los directorios grandes podría ser lento intentar que todos los subdirectorios comprueben si el directorio es accesible. Estoy usando esta función para evitar errores al intentar explorar carpetas protegidas o unidades de CD / DVD sin disco (error "Dispositivo no listo").

¿Existe una manera mejor (más rápida) de verificar si la aplicación puede acceder al directorio (preferiblemente en NET 3.5)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta