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 [(PathName As String [, Attributes As Integer])]

Návratová hodnota:

Řetězec

Parametry:

PathName: Ř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.

Attributes: 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

Podpořte nás!