Зміст
Покажчик 🔎︎

# Функція Dir

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

### Синтаксис:

    Dir [(Text As String [, Attrib 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

Пов'язані теми

CurDir Function