Функция Dir

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

Синтаксис:


Dir [(Text As String) [, Attrib As Integer]]

Връщана стойност:

String

Параметри:

Text: низов израз, задаващ пътя за търсене – директория или файл. Този аргумент може да бъде зададен само при първото изикване на функцията Dir. Ако желаете, можете да въведете пътя във вид на URL.

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

0: нормални файлове

16: връща само името на директорията

Използвайте този атрибут, за да проверите дали съществува файл или директория или да намерите всички файлове и папки в определена директория.

За да проверите дали файл съществува, въведете пълния път и името на файла. Ако името на файл или директория не съществува, функцията Dir връща празен низ ("").

За да получите списък на всички съществуващи файлове в определена директория, направете следното: първо извикайте функцията Dir, като зададете пълния път за търсене на файловете, например "D:\Files\*.odt". Ако пътят е правилен и търсенето открие поне един файл, функцията 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

Моля, подкрепете ни!