Функція Dir

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

Синтаксис:


Dir [(PathName As String [, Attributes As Integer])]

Повертає значення:

Рядок

Параметри:

PathName: Any string expression that specifies the search path, directory or file. This argument can only be specified the first time that you call the Dir function. If you want, you can enter the path in URL notation.

Attributes:Any integer expression that specifies bitwise file attributes. The Dir function only returns files or directories that match the specified attributes. You can combine several attributes by adding the attribute values:

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

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