Funktionen Dir

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Obs

Funktionen, metoden, objektet eller egenskapen som beskrivs i det här avsnittet inaktiveras om Microsoft Jet Expression Service körs i begränsat läge, vilket förhindrar utvärderingen av potentiellt osäkra uttryck. Om du vill ha mer information om begränsat läge söker du efter "begränsat läge" i hjälpen.

Returnerar en sträng som representerar namnet på en fil, en katalog eller en mapp som matchar ett visst mönster eller ett filattribut, eller volymetiketten för en hårddisk.

Syntax

Dir[(sökväg [, attribut])]

Dir-funktionens syntax har följande argument:

Argument Beskrivning
sökväg Valfritt. Stränguttryck som anger ett filnamn – kan innehålla katalog eller mapp och enhet. En sträng med längden noll ("") returneras om sökväg inte kan hittas.
attribut Valfritt. Konstant eller numeriskt uttryck vars summa anger filattributen. Om det utelämnas returnerar filer som matchar sökvägen men har inga attribut.

    

Inställningar

Inställningarna för attributargumentetär:

Konstant Värde Beskrivning
vbNormal 0 (Standard) Anger filer som saknar attribut.
vbReadOnly 1 Anger skrivskyddade filer utöver filer som saknar attribut.
vbHidden 2 Anger dolda filer utöver filer som saknar attribut.
VbSystem 4 Anger systemfiler utöver filer som saknar attribut. Inte tillgängligt på Mac-datorer.
vbVolume 8 Anger volymetikett; Om något annat attribut anges ignoreras vbVolume . Inte tillgängligt på Mac-datorer.
vbDirectory 16 Anger kataloger eller mappar utöver filer utan attribut.
vbAlias 64 Filnamnet är ett alias. Endast tillgängligt på Mac-datorer.

    

Obs

Dessa konstanter definieras av Visual Basic for Applications (VBA) och kan användas var som helst i koden i stället för faktiska värden.

Kommentarer

I Microsoft Windows stöder Dir användning av jokertecken som består av flera tecken (*) och ett enda tecken (?) för att ange flera filer. På Macintosh behandlas dessa som giltiga filnamnstecken och kan inte användas som jokertecken för att ange flera filer.

Använd filtypen för att identifiera grupper med filer eftersom Macintosh-datorer inte stöder jokertecken. Du kan använda MacID-funktionen för att ange filtyp i stället för att använda filnamnen. Följande uttryck returnerar till exempel namnet på den första TEXT-filen i den aktuella mappen:

Dir("SomePath", MacID("TEXT"))

Om du vill upprepa för alla filerna i mappen anger du en tom sträng:

Dir("")

Ett fel inträffar om du använder MacID-funktionen medDir i Windows.

Alla attributvärden som är större än 256 anses vara ett MacID-värde .

Du måste ange sökväg första gången du anropar Dir funktionen, annars uppstår ett fel. Om du även anger filattribut måste sökväg inkluderas.

Dir returnerar det första filnamnet som matchar sökvägen. Om du vill hämta ytterligare filnamn som matchar sökvägen anropar du Dir igen utan argument. När inga fler filnamn matchar returnerar Dir en sträng med längden noll (""). När en nollängdssträng returneras måste du ange sökväg i efterföljande anrop, annars uppstår ett fel. Du kan ändra till en ny sökväg utan att hämta alla filnamn som matchar den aktuella sökvägen. Däremot kan du inte anropa Dir-funktionen rekursivt. Om du anropar Dir med vbDirectory-attributet returneras inte undermappar kontinuerligt.

Tips Eftersom filnamn inte hämtas i en särskild ordning bör du funderar på att lagra filnamnen i en matris och sedan sortera matrisen.

Exempel

Obs

I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

I det här exemplet används Dir-funktionen för att kontrollera om vissa filer och kataloger finns. På Macintosh-datorer är "HD:" standardnamnet på enheten och delar av sökvägen avgränsas med kolon istället för omvända snedstreck. Dessutom betraktas Windows-jokertecken som giltiga tecken i filnamn på Macintosh-datorer. Du kan däremot använda MacID-funktionen för att ange grupper med filer.

Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")    
' Returns filename with specified extension. If more than one *.ini
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")
' Call Dir again without arguments to return the next *.INI file in the 
' same directory.
MyFile = Dir
' Return first *.TXT file with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)
' Display the names in C:\ that represent directories.
MyPath = "c:\"    ' Set the path.
MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.
Do While MyName <> ""    ' Start the loop.
    ' Ignore the current directory and the encompassing directory.
    If MyName <> "." And MyName <> ".." Then
        ' Use bitwise comparison to make sure MyName is a directory.
        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
            Debug.Print MyName    ' Display entry only if it
        End If    ' it represents a directory.
    End If
    MyName = Dir    ' Get next entry.
Loop