Поделиться через


Практическое руководство. Поиск подкаталогов с определенным шаблоном в Visual Basic

Метод GetDirectories возвращает коллекцию строк только для чтения, представляющую имена путей для подкаталогов в каталоге. Параметр wildCards можно использовать для указания определенного шаблона. Если вы хотите включить содержимое подкаталогов в поиск, задайте для searchType параметра значение SearchOption.SearchAllSubDirectories.

Пустая коллекция возвращается, если каталоги, соответствующие указанному шаблону, не найдены.

Поиск подкаталогов с определенным шаблоном

Используйте метод GetDirectories, указав имя и путь к каталогу, который вы хотите просмотреть. В следующем примере возвращаются все каталоги в структуре каталогов, содержащие слово "Журналы" в названии, и добавляются в 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

Надежное программирование

Следующие условия могут вызвать исключение:

  • Путь недействителен по одной из следующих причин: это строка нулевой длины, она содержит только пробелы, содержит недопустимые символы, или это путь устройства (начинается с \\.\).\) (ArgumentException).

  • Путь недействителен, так как он Nothing (ArgumentNullException).

  • Один или несколько указанных подстановочных знаков: Nothing, пустая строка или содержит только пробелы (ArgumentNullException).

  • directory не существует (DirectoryNotFoundException).

  • directory указывает на существующий файл (IOException).

  • Путь превышает системную максимальную длину (PathTooLongException).

  • Имя файла или папки в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).

  • У пользователя отсутствуют необходимые разрешения для просмотра пути (SecurityException).

  • У пользователя отсутствуют необходимые разрешения (UnauthorizedAccessException).

См. также