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