Cómo: Determinar si un directorio es de sólo lectura en Visual Basic

Actualización: noviembre 2007

El método My.Computer.FileSystem.GetDirectoryInfo (Método) devuelve un objeto DirectoryInfo con una propiedad Attributes que se puede consultar para determinar información sobre el directorio, incluso si es de sólo lectura.

Nota:

  Las opciones disponibles en los cuadros de diálogo, y los nombres y las ubicaciones de los comandos de menú que se ven podrían diferir de lo que se describe en la Ayuda, en función de los valores de configuración o de edición activos. Esta página de Ayuda se ha redactado teniendo en cuenta la Configuración general de desarrollo. Para cambiar la configuración, elija la opción Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para determinar si un directorio es de sólo lectura

  1. Utilice el método GetDirectoryInfo para devolver un objeto DirectoryInfo para el directorio especificado. Este ejemplo devuelve un objeto DirectoryInfo para el directorio TestDirectory.

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
  2. Consulte la propiedad Attributes del objeto para determinar si es de sólo lectura.

    If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then
        MsgBox("Directory is readonly!")
    End If
    

Ejemplo

El ejemplo siguiente, que presenta el fragmento de código anterior en su forma completa, determina si el directorio testDirectory es de sólo lectura y presenta el resultado en un cuadro de mensaje.

Dim reader As System.IO.DirectoryInfo
reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then
    MsgBox("File is readonly!")
End If

Compilar el código

Si el directorio no existe, no se produce ninguna excepción hasta la primera vez que se tiene acceso a una propiedad del objeto DirectoryInfo.

Programación eficaz

Las condiciones siguientes pueden producir una excepción:

  • La ruta de acceso no es válida por una de las razones siguientes: es una cadena de longitud cero; sólo contiene un espacio en blanco; contiene caracteres no válidos; o es una ruta de acceso de dispositivo (empieza por \\.\) (ArgumentException).

  • La ruta de acceso no es válida porque es Nothing (ArgumentNullException).

  • La ruta supera la longitud máxima definida por el sistema (PathTooLongException).

  • Un nombre de archivo o de directorio de la ruta de acceso contiene un signo de dos puntos (:) o tiene un formato no válido (NotSupportedException).

  • El usuario no tiene los permisos necesarios para ver la ruta de acceso (SecurityException).

Vea también

Tareas

Cómo: Determinar los atributos de un directorio en Visual Basic

Referencia

My.Computer.FileSystem.GetDirectoryInfo (Método)