Modul
Indhald
Innhaldsliste 🔎︎

# Dir-funksjonen

Returnerer namnet på ei fil, ein katalog eller alle filene og katalogane på eit drev eller i ein katalog som passer til den spesifiserte søkestien.

## Syntaks:

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

## Returverdi:

Streng

## Parametrar:

Tekst: Eit strenguttrykk som viser søkestien, katalogen eller fila. Dette argumentet kan berre spesifiserast første gongen du kallar opp Dir-funksjonen. Om du ønskjer det, kan du skriva inn søkjestien i URL-notasjon.

Attrib: Eit heiltalsuttrykk som spesifiserer bitvise filattributt. Dir-funksjonen returnerer berre filer eller katalogar som høver med dei spesifiserte kriteria. Du kan kombinera fleire kriterium ved å leggja saman attributtverdiane:

0 : Normale filer.

16: Returnerer berre namnet på katalogen.

Bruk denne atributten for å kontrollere om ei fil eller ein katalog finst eller for å bestemme alle filene og mappene i ein bestemt katalog.

For å kontrollere om ei fil finst, skriv inn fullstendig sti og filnamn. Dersom fila eller katalogen ikkje finst, vil Dir-funksjonen returnere ein tom streng ("").

For å lage ei liste over alle filene i ein bestemt katalog, må du den første gongen du kallar opp Dir-funksjonen skrive inn den fullstendige søkestien for filene, for eksempel «D:\Filer\*.sxw». Dersom søkestien er korrekt og det vert funne i det minste éi fil, vil Dir-funksjonen returnere namnet på den første fila som passar med søket. For å finna fleire filnamn som passar søket, kall opp Dir-funksjonen igjen, men utan argument.

Om du ønskjer at berre katalogane skal returnerast, brukar du attributparameteren. Det same gjer du dersom du ønskjer å finna namnet på eit lagringsmedium, for eksempel ein harddiskpartisjon.

## Feilkodar

5 Ugyldig prosedyreoppkall

53 Fann ikkje fila

## Eksempel:

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