Como localizar subdiretórios com um padrão específico no Visual Basic

O método GetDirectories retorna uma coleção somente leitura de cadeias de caracteres que representam os nomes de caminho para os subdiretórios em um diretório. É possível usar o parâmetro wildCards para especificar um padrão específico. Caso deseje incluir os conteúdos dos subdiretórios na pesquisa, defina o parâmetro searchType para SearchOption.SearchAllSubDirectories.

Uma coleção vazia será retornada se nenhum diretório correspondente ao padrão especificado for encontrado.

Localizar subdiretórios com um padrão específico

Use o método GetDirectories, fornecendo o nome e o caminho do diretório a ser pesquisado. O exemplo a seguir retorna todos os diretórios na estrutura de diretório que contém a palavra “Logs” em seu nome e as adiciona 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

Programação robusta

As seguintes condições podem causar uma exceção:

  • O caminho não é válido por um dos seguintes motivos: é uma cadeia de comprimento zero, contém apenas espaços em branco, contém caracteres inválidos ou é um caminho de dispositivo (começa com \\.\) (ArgumentException).

  • O caminho não é válido porque é Nothing (ArgumentNullException).

  • Um ou mais dos caracteres curinga especificados é Nothing, uma cadeia de caracteres vazia ou contém somente espaços (ArgumentNullException).

  • directory não existe (DirectoryNotFoundException).

  • directory aponta para um arquivo existente (IOException).

  • O caminho excede o comprimento máximo definido pelo sistema (PathTooLongException).

  • Um nome de pasta no caminho contém dois pontos (:) ou está em um formato inválido (NotSupportedException).

  • O usuário não possui permissões necessárias para exibir o caminho (SecurityException).

  • O usuário não possui as permissões necessárias (UnauthorizedAccessException).

Confira também