Cómo: Buscar subdirectorios con un modelo concreto en Visual Basic
El método GetDirectories devuelve una colección de solo lectura de cadenas que representan los nombres de ruta de acceso de los subdirectorios de un directorio. Puede usar el parámetro wildCards
para especificar un patrón concreto. Si quiere incluir el contenido de subdirectorios en la búsqueda, establezca el parámetro searchType
en SearchOption.SearchAllSubDirectories
.
Se devuelve una colección vacía si no se encuentra ningún directorio que coincida con el modelo especificado.
Para buscar subdirectorios con un modelo concreto
Use el método GetDirectories
y proporcione el nombre y ruta de acceso del directorio que quiera buscar. En el ejemplo siguiente se devuelven todos los directorios de la estructura de directorios que contienen la palabra "Logs" en su nombre y se agregan a ListBox1
.
For Each foundDirectory As String In
My.Computer.FileSystem.GetDirectories(
My.Computer.FileSystem.SpecialDirectories.MyDocuments,
FileIO.SearchOption.SearchTopLevelOnly,
"*Logs*")
ListBox1.Items.Add(foundDirectory)
Next
Programación sólida
Las condiciones siguientes pueden provocar una excepción:
La ruta de acceso no es válida por una de las razones siguientes: es una cadena de longitud cero, solo 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).Uno (o más) de los caracteres comodín especificados es
Nothing
, una cadena vacía o contiene solo espacios (ArgumentNullException).directory
no existe (DirectoryNotFoundException).directory
apunta a un archivo existente (IOException).La ruta supera la longitud máxima definida por el sistema (PathTooLongException).
Un nombre de archivo o de carpeta 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).
El usuario no tiene los permisos necesarios (UnauthorizedAccessException).