Функція Dir

Повертає ім'я файлу, каталогу або файлів і каталогів на диску або в каталозі, відповідних вказаному шляху пошуку.

Синтаксис:


Dir [(Текст As String) [, Атрибут As Integer]]

Значення, що повертається:

Рядок

Параметри:

Текст: будь-який вираз типу String, який вказує шлях пошуку, каталог або файл. Даний аргумент може бути зазначений, тільки коли функція Dir викликається в перший раз. За необхідності можна ввести шлях в URL-нотації.

Атрибут: будь-який цілий вираз, що вказує побітові атрибути файлу. Функція Dir повертає тільки файли або каталоги, які відповідають зазначеним атрибутам. Можна поєднувати кілька атрибутів, додаючи значення атрибутів:

0 : Звичайні файли.

16 : Повертає ім'я каталогу.

Використовуйте цей параметр, щоб перевірити, чи існує файл або каталог, або щоб визначити всі файли і теки в конкретному каталозі.

Щоб перевірити, чи існує файл, введіть повний шлях та ім'я файлу. Якщо ім'я файлу або каталогу не існує, функція Dir повертає рядок нульової довжини ("").

Щоб створити список файлів, наявних у певній теці, зробіть так: спочатку викличте функцію Dir, зазначивши повний шлях для пошуку файлів, наприклад, "D:\Files\*.ods". Якщо шлях коректний і буде знайдено принаймні один файл, функція Dir поверне назву першого файлу, який відповідає шляху. Щоб отримати назви інших файлів, викликайте Dir знову, але без аргументів.

Щоб повернути тільки каталоги, використовуйте параметр Атрибут. Він застосовується, коли потрібно визначити ім'я тому (наприклад, розділ жорсткого диска).

Коди помилок:

5 Неправильний виклик процедури

53 Файл не знайдено

Приклад:


Sub ExampleDir
' Покаже усі файли і каталоги
Dim sPath As String
Dim sDir As String, sValue As String
    sDir="Каталоги:"
    sPath = CurDir
    sValue = Dir$(sPath + getPathSeparator + "*",16)
    Do
        If sValue <> "." And sValue <> ".." Then
            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                ' Отримання каталогів
                sDir = sDir & chr(13) & sValue
            End If
        End If
        sValue = Dir$
    Loop Until sValue = ""
    MsgBox sDir,0,sPath
End Sub

Будь ласка, підтримайте нас!