Funkce Dir

Vrátí jméno souboru, adresáře nebo všech souborů a adresářů jednotky nebo adresáře, který splňuje zadanou vyhledávací podmínku.

Syntaxe:

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

Návratová hodnota:

Řetězec

Parametry:

Text: Řetězec určující hledanou cestu, adresář nebo soubor. Tento argument je možné určit jen při prvním volání funkce Dir. Pokud chcete, je možné zadat cestu v URL notaci.

Attrib: Celočíselný výraz určující atributy souboru. Funkce Dir vrací jen soubory nebo adresáře, které odpovídají určeným atributům. Několik atributů je možné zkombinovat, když sečtete jejich hodnoty:

0 : Normální soubory

16 : Vrátí pouze název adresáře.

Tímto atributem ověříte, zda soubor nebo adresář existuje, nebo určíte všechny soubory a složky v určitém adresáři.

Chcete-li zjistit, zda soubor existuje, zadejte kompletní cestu a název souboru. Pokud soubor nebo adresář neexistuje, funkce Dir vrátí prázdný řetězec ("").

Chcete-li vygenerovat seznam všech existujících souborů v určitém adresáři, postupujte takto: poprvé zavolejte funkci Dir s kompletní vyhledávací cestou pro soubory, např. "D:\Files\*.ods". Je-li cesta správná a vyhledávání nalezne alespoň jeden soubor, funkce Dir vrátí název prvního souboru, který odpovídá cestě. Další názvy souborů získáte opětovným voláním funkce Dir, ovšem bez argumentů.

Chcete-li vrátit jen adresáře, použijte parametr atributů. To stejné platí, pokud chcete určit název jednotky (např. pevného disku).

Chybové kódy:

5 Neplatné volání procedury

53 Soubor nenalezen

Příklad:

Sub ExampleDir

' Zobrazí všechny soubory a adresáře

Dim sPath As String

Dim sDir As String, sValue As String

    sDir="Adresáře:"

    sPath = CurDir

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

    Do

        If sValue <> "." And sValue <> ".." Then

            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then

                ' Načtení adresářů

                sDir = sDir & chr(13) & sValue

            End If

        End If

        sValue = Dir$

    Loop Until sValue = ""

    MsgBox sDir,0,sPath

End Sub