Dir-Funktion

Hinweis : Die Funktion, die Methode, das Objekt oder die Eigenschaft, die bzw. das in diesem Thema erläutert wird, ist deaktiviert, falls der Ausdrucksdienst in Microsoft Jet im geschützten Modus (Sandkastenmodus) ausgeführt wird. In diesem Modus wird die Auswertung von potenziell unsicheren Ausdrücken verhindert. Weitere Informationen zum geschützten Modus erhalten Sie, wenn Sie in der Hilfe nach "Sandkastenmodus" suchen.

Gibt eine Zeichenfolge zurück, die den Namen einer Datei, eines Verzeichnisses, eines Ordners, der einem angegebenen Muster oder Dateiattribut entspricht, oder die Volumebezeichnung eines Laufwerks darstellt.

Syntax

Dir[(pathname [, attributes] )]

Die Syntax der Dir-Funktion besteht aus den folgenden Argumenten:

Argument

Beschreibung

pathname

Optional. Zeichenfolgenausdruck, der einen Dateinamen angibt. Diese Angabe kann ein Verzeichnis, einen Ordner und ein Laufwerk enthalten. Wenn pathname nicht gefunden wird, wird eine leere Zeichenfolge ("") zurückgegeben.

attributes

Optional. Konstante oder Numerischer Ausdruck, deren bzw. dessen Summe Dateiattribute angibt. Wird dieser Wert ausgelassen, werden Dateien zurückgegeben, die zwar pathname entsprechen, aber keine Attribute enthalten.


Einstellungen

Für das attributes-Argument gelten folgende Einstellungen:

Konstante

Wert

Beschreibung

vbNormal

0

(Standardeinstellung) Gibt Dateien ohne Attribute an.

vbReadOnly

1

Gibt zusätzlich zu Dateien ohne Attribute auch schreibgeschützte Dateien an.

vbHidden

2

Gibt zusätzlich zu Dateien ohne Attribute auch versteckte Dateien an.

VbSystem

4

Gibt zusätzlich zu Dateien ohne Attribute auch Systemdateien an. Auf einem Macintosh nicht verfügbar.

vbVolume

8

Gibt die Volumebezeichnung 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 auch 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 für Applikationen (VBA) angegeben und können überall im Code anstelle der tatsächlichen Werte verwendet werden.

Hinweise

Unter Microsoft Windows unterstützt Dir die Verwendung von Platzhaltern für mehrere Zeichen (*) und einzelne Zeichen (?), um mehrere Dateien anzugeben. Auf einem Macintosh werden diese Zeichen wie gültige Dateinamenzeichen behandelt und können nicht als Platzhalter zum Angeben mehrerer Dateien verwendet werden.

Da diese Platzhalterzeichen nicht auf einem Macintosh unterstützt werden, geben Sie zum Identifizieren von Dateigruppen den Dateityp an. Sie können die MacID-Funktion verwenden, um den Dateityp anstelle von Dateinamen anzugeben. Die folgende Anweisung gibt beispielsweise den Namen der ersten Textdatei im aktuellen Ordner zurück:

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

Geben Sie eine leere Zeichenfolge an, damit alle Dateien in einem Ordner durchlaufen werden:

Dir("")

Wenn Sie die MacID-Funktion zusammen mit Dir unter Windows verwenden, tritt ein Fehler auf.

Alle attributes-Werte, die größer als 256 sind, werden als MacID-Werte behandelt.

Wenn Sie die Dir-Funktion zum ersten Mal aufrufen, müssen Sie pathname angeben. Andernfalls tritt ein Fehler auf. Wenn Sie auch Dateiattribute angeben, muss pathname angegeben werden.

Dir gibt den ersten Dateinamen zurück, der pathname entspricht. Rufen Sie Dir erneut ohne Argumente auf, um weitere Dateinamen abzurufen, die pathname entsprechen. Wenn keine weiteren übereinstimmenden Dateinamen vorhanden sind, gibt Dir eine leere Zeichenfolge ("") zurück. Wenn eine leere Zeichenfolge zurückgegeben wurde, müssen Sie pathname bei jedem nachfolgenden Aufruf angeben, damit kein Fehler auftritt. Sie können für pathname einen neuen Wert angeben, ohne alle Dateinamen abzurufen, die mit dem aktuellen Wert für pathname übereinstimmen. Die Dir-Funktion kann jedoch nicht rekursiv aufgerufen werden. Durch das Aufrufen von Dir mit dem vbDirectory-Attribut werden Unterverzeichnisse nicht fortlaufend zurückgegeben.

Tipp     Da Dateinamen nicht in einer bestimmten Reihenfolge abgerufen werden, empfiehlt es sich, zurückgegebene Dateinamen in einem Matrix zu speichern und das Array anschließend zu sortieren.

Beispiel

Hinweis : Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic für Applikationen). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerhilfe in der Dropdownliste neben Suchen, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.

In diesem Beispiel wird mithilfe der Dir-Funktion überprüft, ob bestimmte Dateien und Verzeichnisse vorhanden sind. Auf dem Macintosh ist "HD" der Standard-Laufwerkname, und Teile des Pfadnamens werden durch Doppelpunkte anstelle von umgekehrten Schrägstrichen voneinander getrennt. Außerdem werden die für Windows gültigen Platzhalterzeichen auf dem Macintosh als gültige Dateinamenzeichen 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
Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×