Hinweis
Die in diesem Thema beschriebene Funktion, Methode, das Objekt oder die Eigenschaft ist deaktiviert, wenn der Microsoft Jet-Ausdrucksdienst im Sandkastenmodus ausgeführt wird, der die Auswertung potenziell unsicherer Ausdrücke verhindert. Weitere Informationen zum Sandboxmodus finden Sie, wenn Sie in der Hilfe nach "Sandboxmodus" suchen.
Gibt eine Zeichenfolge zurück, die den Namen einer einem bestimmten Muster oder Dateiattribut entsprechenden Datei oder eines solchen Verzeichnisses oder Ordners oder die Bezeichnung eines Laufwerks darstellt.
Syntax
Dir[(Pfadname [, attributes] )]
Die Syntax der Dir-Funktion weist die folgenden Argumente auf:
| Argument | Beschreibung |
|---|---|
| Pfadname | Optional. Zeichenfolgenausdruck, der einen Dateinamen angibt – kann ein Verzeichnis oder einen Ordner sowie ein Laufwerk enthalten. Wenn pathname nicht gefunden wird, wird eine leere Zeichenfolge ("") zurückgegeben. |
| Attribute | Optional. Konstanter oder numerischer Ausdruck, dessen Summe Dateiattribute angibt. Wenn er weggelassen wird, werden Dateien zurückgegeben, die dem Pfadnamen entsprechen, aber keine Attribute aufweisen. |
Einstellungen
Die Einstellungenfür das Attributargument sind:
| Konstante | Wert | Beschreibung |
|---|---|---|
| vbNormal | 0 | (Standard) Gibt Dateien ohne Attribute an. |
| vbReadOnly | 1 | Gibt zusätzlich zu Dateien ohne Attribute schreibgeschützte Dateien an. |
| vbHidden | 2 | Gibt zusätzlich zu Dateien ohne Attribute ausgeblendete Dateien an. |
| VbSystem | 4 | Gibt zusätzlich zu Dateien ohne Attribute Systemdateien an. Auf einem Macintosh nicht verfügbar. |
| vbVolume | 8 | Gibt die Volumenbezeichnung an; Wenn ein anderes Attribut angegeben ist, wird vbVolume ignoriert. Auf einem Macintosh nicht verfügbar. |
| vbDirectory | 16 | Gibt zusätzlich zu Dateien ohne Attribute Verzeichnisse oder Ordner an. |
| vbAlias | 64 | Der angegebene Dateiname ist ein Alias. Nur auf einem Macintosh verfügbar. |
Hinweis
Diese Konstanten werden von Visual Basic for Applications (VBA) angegeben und können an einer beliebigen Stelle in Ihrem Code anstelle der tatsächlichen Werte verwendet werden.
Hinweise
In Microsoft Windows unterstützt "Dir " die Verwendung von Platzhaltern mit mehreren Zeichen (*) und aus einem Zeichen (?), um mehrere Dateien anzugeben. Auf einem Macintosh-Computer werden diese Zeichen als gültige Zeichen des Dateinamens behandelt und können nicht als Platzhalter verwendet werden, um mehrere Dateien anzugeben.
Da Macintosh die Platzhalter nicht unterstützt, verwenden Sie den Dateityp, um Gruppen von Dateien zu identifizieren. Sie können die Funktion MacID anstelle der Dateinamen verwenden, um den Dateityp anzugeben. Beispielsweise gibt die folgende Anweisung den Namen der ersten TEXT-Datei im aktuellen Ordner zurück:
Dir("SomePath", MacID("TEXT"))
Geben Sie zum Durchlaufen aller Dateien in einem Ordner eine leere Zeichenfolge an:
Dir("")
Wenn Sie die MacID-Funktion mit Dir unter Windows verwenden, tritt ein Fehler auf.
Jeder Attributwert größer als 256 gilt als MacID-Wert.
Sie müssen pathname angeben, wenn Sie die Dir-Funktion zum ersten Mal aufrufen. Andernfalls tritt ein Fehler auf. Wenn Sie auch Dateiattribute angeben, muss pathname enthalten sein.
"dir " gibt den ersten Dateinamen zurück, der mit pathname übereinstimmt. Um alle zusätzlichen Dateinamen abzurufen, die mit pathname übereinstimmen, rufen Sie "Dir " erneut ohne Argumente auf. Wenn keine Dateinamen mehr übereinstimmen, gibt "Dir " eine Zeichenfolge der Länge Null ("") zurück. Sobald eine leere Zeichenfolge zurückgegeben wird, müssen Sie pathname in nachfolgenden Aufrufen angeben, oder es tritt ein Fehler auf. Sie können zu einem neuen Pfadnamen wechseln, ohne alle Dateinamen abzurufen, die dem aktuellen Pfadnamen entsprechen. Sie können die Dir-Funktion jedoch nicht rekursiv aufrufen. Wenn Sie Dir mit dem vbDirectory-Attribut aufrufen, werden nicht kontinuierlich Unterverzeichnisse zurückgegeben.
Tipp Da Dateinamen in keiner bestimmten Reihenfolge abgerufen werden, möchten Sie die zurückgegebenen Dateinamen möglicherweise in einem Array speichern und dann das Array sortieren.
Beispiel
Hinweis
Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
In diesem Beispiel wird die Dir-Funktion verwendet, um zu überprüfen, ob bestimmte Dateien und Verzeichnisse vorhanden sind. Auf einem Macintosh-Computer ist "HD:" der Standardlaufwerkname, und Teile des Pfadnamens werden durch Doppelpunkte anstatt durch umgekehrte Schrägstriche voneinander getrennt. Darüber hinaus werden die Windows-Platzhalterzeichen auf dem Macintosh als gültige Zeichen des Dateinamens behandelt. Sie können jedoch die MacID-Funktion verwenden, um Dateigruppen anzugeben.
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