Functie Dir

Geeft de naam van een bestand, map of alle bestanden en mappen op stations of in mappen die aan het opgegeven zoekpad voldoen.

Syntaxis:

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

Teruggegeven waarde:

String

Parameters:

Tekst: Elke tekenreeks die het zoekpad, de map of het bestand specificeert. Dit argument kan alleen gespecificeerd worden wanneer u de Dir-functie voor het eerst aanroept. Als u wilt, kunt u het pad in URL-notatie invoeren.

Attrib: Elke integer expressie die bestandsattributen bitsgewijs specificeert. De functie Dir retourneert alleen bestanden of mappen die met de gespecificeerde attributen overeenkomen. U kunt verschillende attributen samenvoegen door toevoeging van de attribuutwaarden:

0 : Normale bestanden.

16 : Geeft alleen de naam van de map.

Gebruik dit attribuut om te controleren of een bestand of map bestaat, of om alle bestanden en mappen in een specifieke map te zien.

Voer het pad en de naam van een bestand volledig in om te controleren of het bestaat. Als de bestands- of mapnaam niet bestaat, geeft de Dir-functie een tekenreeks met lengte nul ("").

U kunt als volgt een lijst van alle bestaande bestanden in een specifieke map genereren: Wanneer u de Dir-functie voor het eerst aanroept, specificeert u het volledige zoekpad voor de bestanden, bijvoorbeeld 'D:\Files\*.ods'. Is het pad juist en vindt de zoekopdracht ten minste één bestand, dan geeft de Dir-functie de naam van het eerste bestand dat met het zoekpad overeenkomt. Voor extra bestandsnamen die met het pad overeenkomen, roept u 'Dir' nogmaals op, maar zonder argumenten.

Als u alleen mappen wilt retourneren, gebruikt u de attribuutparameter. Hetzelfde geldt als u de naam van een volume wilt bepalen (bijvoorbeeld een harde-schijfpartitie).

Foutcodes:

5 Ongeldige aanroep van procedure

53 Bestand niet gevonden

Voorbeeld:

Sub ExampleDir

' Geeft alle bestanden en mappen weer

Dim sPath As String

Dim sDir As String, sValue As String

    sDir="Mappen:"

    sPath = CurDir

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

    Do

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

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

                ' Pak de mappen

                sDir = sDir & chr(13) & sValue

            End If

        End If

        sValue = Dir$

    Loop Until sValue = ""

    MsgBox sDir,0,sPath

End Sub