IBM Lotus Symphony


Функция Dir [встроенная]

Возвращает имя файла, каталога или всех файлов и каталогов на диске или в каталоге, соответствующих указанному пути поиска.

Синтаксис:

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

Возвращаемое значение:

String

Параметры:

текст — произвольное строковое выражение, обозначающее путь поиска, имя каталога или файла. Этот параметр можно указывать только при первом вызове функции Dir. Также для пути поддерживается формат URL.

атрибут — произвольное целочисленное выражение, представляющее атрибуты каталога в виде битовых флагов. Функция Dir возвращает только файлы и каталоги, с указанными атрибутами. Можно указывать сразу несколько атрибутов, объединяя следующие значения:

0 — обычный файл;

16 — только имя каталога;

Этот атрибут используется для проверки существования файла (каталога) или для получения списка всех файлов и каталогов указанного каталога.

Для проверки существования файла необходимо ввести полное имя файла (включая путь к нему). Если файл или каталог не существует, функция Dir возвращает пустую строку ("").

Для получения списка всех файлов в определенном каталоге: при первом вызове функции Dir укажите полный путь поиска для файлов, например "D:\Files\*.sxw". Если путь правильный и найдено не менее одного файла, функция Dir возвращает имя первого найденного файла. Для получения имени следующего найденного файла функцию Dir следует вызвать еще раз, уже без параметров.

Для получения только каталогов необходимо указать в параметрах функции соответствующий атрибут. То же самое требуется для получения имени тома (например, раздела жесткого диска).

Коды ошибок

5 Недопустимый вызов процедуры

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

Пример:

Sub ExampleDir

REM Вывод всех файлов и каталогов

Dim sPath As String

Dim sDir as String, sValue as String

sDir="Directories:"

sPath = CurDir

sValue = Dir$(sPath + getPathSeparator + "*",16)

Do

If sValue <> "." and sValue <> ".." Then

if (GetAttr( sPath + getPathSeparator + sValue) AND 16) >0 then

REM получение каталогов

sDir = sDir & chr(13) & sValue

End If

End If

sValue = Dir$

Loop Until sValue = ""

MsgBox sDir,0,sPath

End sub


Комментарии по продукту | Дополнительная документация | Товарные знаки