Uwaga
Funkcja, metoda, obiekt lub właściwość opisane w tym temacie są wyłączone, jeśli usługa wyrażeń Microsoft Jet działa w trybie piaskownicy, co uniemożliwia ocenę potencjalnie niebezpiecznych wyrażeń. Aby uzyskać więcej informacji o trybie piaskownicy, wyszukaj termin "tryb piaskownicy" w Pomocy.
Zwraca ciąg reprezentujący nazwę pliku, katalogu lub folderu, który jest zgodny z określonym wzorcem, atrybutem pliku lub etykietą woluminu dysku.
Składnia
Dir[(nazwa_ścieżki [, atrybuty] )]
W składni funkcji Dir występują następujące argumenty:
| Argumenty argumentów | Opis |
|---|---|
| ścieżka | Argument opcjonalny. Wyrażenie tekstowe określające nazwę pliku — może zawierać katalog lub folder i dysk. Jeśli ścieżka nie zostanie znaleziona, zwracany jest ciąg o zerowej długości (""). |
| Atrybuty | Argument opcjonalny. Wyrażenie stałe lub liczbowe, którego suma określa atrybuty pliku. W przypadku pominięcia zwraca pliki, które są zgodne z nazwą_ścieżki , ale nie mają atrybutów. |
Ustawienia
Ustawienia argumentu atrybutyto:
| Stała | Wartość | Opis |
|---|---|---|
| vbNormal (Normalny) | 0 | (Domyślnie) Określa pliki bez atrybutów. |
| vbReadOnly | 1 | Określa pliki tylko do odczytu oprócz plików bez atrybutów. |
| vbHidden | 2 | Określa również pliki ukryte oraz pliki bez atrybutów. |
| System VbSystem | 4 | Określa pliki systemowe oprócz plików bez atrybutów. Niedostępne na komputerach Macintosh. |
| vbVolume (wolumin vb) | 8 | Określa etykietę woluminu; jeśli określono jakikolwiek inny atrybut, vbVolume jest ignorowany. Niedostępne na komputerach Macintosh. |
| vbDirectory | 16 | Określa katalogi lub foldery oprócz plików bez atrybutów. |
| vbAlias (Alias) | 64 | Podana nazwa pliku jest aliasem. Dostępne tylko na komputerach Macintosh. |
Uwaga
Te stałe są określone przez język Visual Basic for Applications (VBA) i mogą być używane w dowolnym miejscu kodu zamiast rzeczywistych wartości.
Uwagi
W systemie Microsoft Windows funkcja Dir umożliwia określanie wielu plików przy użyciu symboli wieloznacznych wielu znaków (*) i pojedynczych znaków (?). Na komputerach Macintosh te znaki są traktowane jako prawidłowe znaki nazw plików i nie można ich używać jako symboli wieloznacznych do określania wielu plików.
Komputery Macintosh nie obsługują symboli wieloznacznych, dlatego należy identyfikować grupy plików przy użyciu tego typu pliku. Zamiast nazw plików, można użyć funkcji MacID do określenia typu pliku. Na przykład poniższa instrukcja zwraca nazwę pierwszego pliku TEXT w bieżącym folderze:
Dir("SomePath", MacID("TEXT"))
Aby wykonać iterację po wszystkich plikach w folderze, określ pusty ciąg:
Dir("")
W przypadku użycia funkcji MacID z katalogiem w systemie Windows wystąpi błąd.
Wszystkie atrybuty o wartości większej niż 256 są uznawane za wartości MacID .
Musisz określić ścieżkę przy pierwszym wywołaniu funkcji Dir , w przeciwnym razie wystąpi błąd. Jeśli określisz również atrybuty pliku, nazwa ścieżki musi być uwzględniona.
Dir zwraca pierwszą nazwę pliku zgodną ze ścieżką. Aby uzyskać jakiekolwiek dodatkowe nazwy plików zgodne ze ścieżką, należy ponownie wywołać Dir bez argumentów. Gdy żadne nazwy plików nie są zgodne, funkcja Dir zwraca ciąg o zerowej długości (""). Po zwróceniu ciągu o zerowej długości należy określić nazwę ścieżki w kolejnych wywołaniach, w przeciwnym razie wystąpi błąd. Możesz zmienić ścieżkę na nową bez pobierania wszystkich nazw plików zgodnych z bieżącą ścieżką. Nie można jednak wywoływać funkcji Dir rekurencyjnie. Wywołanie Dir z atrybutem vbDirectory nie zwraca w sposób ciągły podkatalogów.
Porada Ponieważ nazwy plików są pobierane w przypadkowej kolejności, zwrócone nazwy plików można przechowywać w tablicy, a następnie posortować tablicę.
Przykład
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie użyto funkcji Dir do sprawdzenia, czy istnieją określone pliki i katalogi. Na komputerach Macintosh domyślną nazwą dysku jest "HD:", a części ścieżki są oddzielane dwukropkami zamiast ukośnikami odwrotnymi. Ponadto symbole wieloznaczne systemu Windows są traktowane jako prawidłowe znaki nazw plików na komputerach Macintosh. Można jednak określić grupy plików za pomocą funkcji MacID .
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