Innhold

# Dir Funksjon

Returnerer navnet på en fil, en katalog eller alle filene og katalogene på en stasjon eller i en katalog som samsvarer med den angitte søkebanen.

### Syntaks:

    Dir [(PathName As String [, Attributes As Integer])]

### Returtype:

Streng

### Parametre:

PathName: Ethvert strenguttrykk som spesifiserer søkebanen, katalogen eller filen. Dette argumentet kan bare spesifiseres første gang du kaller Dir-funksjonen. Hvis du vil, kan du angi banen i URL-notasjon.

Attributter: Ethvert heltallsuttrykk som spesifiserer bitvise filattributter. Dir-funksjonen returnerer bare filer eller kataloger som samsvarer med de angitte attributtene. Du kan kombinere flere attributter ved å legge til attributtverdiene:

0 : Normale filer.

16 : Returnerer kun navnet på katalogen.

Bruk dette attributtet for å sjekke om en fil eller katalog finnes, eller for å finne alle filer og mapper i en bestemt katalog.

For å sjekke om en fil eksisterer, skriv inn hele banen og navnet på filen. Hvis fil- eller katalognavnet ikke eksisterer, returnerer Dir-funksjonen en null-lengde streng ("").

For å generere en liste over alle eksisterende filer i en bestemt katalog, fortsett som følger: Første gang du kaller opp Dir-funksjonen, spesifiser hele søkebanen for filene, for eksempel "D:\Files\*.ods". Hvis banen er riktig og søket finner minst én fil, returnerer Dir-funksjonen navnet på den første filen som samsvarer med søkebanen. For å returnere flere filnavn som samsvarer med banen, ring Dir igjen, men uten argumenter.

For kun å returnere kataloger, bruk attributtparameteren. Det samme gjelder hvis du vil bestemme navnet på et volum (for eksempel en harddiskpartisjon).

### Feilkoder

5 Ugyldig prosedyreoppkall

53 Fant ikke filen

### Eksempel:

    Sub ExampleDir
    ' Viser alle filer og kataloger
    Dim sPath As String
    Dim sDir As String, sValue As String
        sDir="Kataloger:"
        sPath = CurDir
        sValue = Dir$(sPath + getPathSeparator + "*",16)
        Do
            If sValue <> "." And sValue <> ".." Then
                If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                    'Hent katalogene
                    sDir = sDir & chr(13) & sValue
                End If
            End If
            sValue = Dir$
        Loop Until sValue = ""
        MsgBox sDir,0,sPath
    End Sub

Lignende emner

CurDir Funksjon

CompatibilityMode()-funksjon

Alternativ VBA støtte-uttrykk

Supporter oss!