Pomoc LibreOfficeDev 7.6
Zwraca nazwę pliku, katalogu lub wszystkie pliki i katalogi na dysku lub w katalogu odpowiadającym określonej ścieżce wyszukiwania.
Dir [(PathName As String [, Attributes As Integer])]
Ciąg
PathName: Any string expression that specifies the search path, directory or file. This argument can only be specified the first time that you call the Dir function. If you want, you can enter the path in URL notation.
Attributes:Any integer expression that specifies bitwise file attributes. The Dir function only returns files or directories that match the specified attributes. You can combine several attributes by adding the attribute values:
0 : Pliki normalne.
16 : Zwraca tylko nazwę katalogu.
Atrybut ten służy do sprawdzenia, czy plik lub katalog istnieje, lub określenia wszystkich plików i folderów w katalogu.
Aby sprawdzić, czy plik istnieje, należy wprowadzić jego pełną ścieżkę i nazwę. Jeśli plik lub katalog nie istnieje, funkcja Dir zwraca ciąg o długości zerowej ("").
Aby wygenerować listę istniejących plików w określonym katalogu, należy postępować zgodnie z poniższą procedurą: Przy pierwszym wywołaniu funkcji Dir należy określić pełną ścieżkę wyszukiwania plików, na przykład "D:\Files\*.ods". Jeśli ścieżka jest prawidłowa i zostanie odnaleziony co najmniej jeden plik, funkcja Dir zwraca nazwę pierwszego pliku odpowiadającego ścieżce wyszukiwania. Aby uzyskać kolejne pliki odpowiadające ścieżce wyszukiwania, należy ponownie wywołać funkcję Dir, tym razem bez argumentów.
Aby uzyskać tylko katalogi, należy użyć parametru atrybutu. Tak samo należy postąpić w celu określenia nazwy woluminu (np. partycji dysku twardego)
Sub ExampleDir
' Wyświetla wszystkie pliki i katalogi
Dim sPath As String
Dim sDir As String, sValue As String
sDir="Katalogi:"
sPath = CurDir
sValue = Dir$(sPath + getPathSeparator + "*",16)
Do
If sValue <> "." And sValue <> ".." Then
If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
' Katalogi
sDir = sDir & chr(13) & sValue
End If
End If
sValue = Dir$
Loop Until sValue = ""
MsgBox sDir,0,sPath
End Sub