Практическое руководство. Получение коллекции содержащихся в каталоге файлов в Visual Basic

Перегрузка метода FileSystem.GetFiles вернет доступную только для чтения коллекцию строк, представляющих собой имена файлов в каталоге:

  • Перегрузка метода GetFiles(String) позволяет найти простой файл в указанном каталоге без поиска подкаталогов.

  • Перегрузка метода GetFiles(String, SearchOption, String[]) позволяет указать дополнительные параметры поиска. Для указания шаблона поиска можно использовать параметр wildCards. Чтобы включить подкаталоги в поиск, присвойте параметру searchType значение SearchOption.SearchAllSubDirectories.

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

Составление списка файлов в каталоге

  • Используйте перегрузки одного из методов FileSystem.GetFiles, указывая имя и путь к каталогу для поиска в параметре directory. В следующем примере возвращаются и добавляются в список ListBox1 все файлы, находящиеся в каталоге.

    For Each foundFile As String In My.Computer.FileSystem.GetFiles(
      My.Computer.FileSystem.SpecialDirectories.MyDocuments)
    
        listBox1.Items.Add(foundFile)
    Next
    

Отказоустойчивость

При следующих условиях возможно возникновение исключения:

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

  • Путь не является допустимым, поскольку он равен Nothing (ArgumentNullException).

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

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

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

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

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

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

См. также