Funktionen Dir

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 betecknar ett filnamn. Kan innehålla en 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äg men har inga attribut.


Inställningar

Inställningarna för attributargument ä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 volymetiketten. vbVolume ignoreras om något annat attribut anges. 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.

Anmärkningar

Dir stöder användning av jokertecken som består av flera (*) eller ett (?) tecken för att ange flera filer i Microsoft Windows. 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.

Attribut -värden som är större än 256 betraktas som 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äg. Om du vill få ytterligare filnamn som matchar sökväg anropar du Dir en gång till 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 inträffar 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
Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×