IBM Lotus Symphony
|
Zwraca nazwę pliku, katalogu albo wszystkich plików i katalogów na dysku lub w katalogu zgodnym z podaną ścieżką wyszukiwania.
Dir [(Tekst As String) [, Atrybut As Integer]]
Łańcuch
Tekst: Dowolne wyrażenie łańcuchowe określające ścieżkę wyszukiwania, katalog lub plik. Ten argument może zostać określony tylko przy pierwszym wywołaniu funkcji Dir. Ścieżka może zostać wprowadzona w notacji URL.
Atrybut: Dowolne wyrażenie całkowitoliczbowe określające bitowe atrybuty pliku. Funkcja Dir zwraca jedynie te pliki lub katalogi, które są zgodne z podanymi atrybutami. Można połączyć ze sobą wiele atrybutów, dodając ich wartości:
0: Zwykłe pliki.
16: Zwraca tylko nazwę katalogu.
Za pomocą tego atrybutu można sprawdzić, czy plik lub katalog istnieje, albo uzyskać listę wszystkich plików i folderów w określonym katalogu.
Aby sprawdzić, czy plik istnieje, należy wprowadzić pełną ścieżkę do tego pliku wraz z jego nazwą. Jeśli plik lub katalog nie istnieje, funkcja Dir zwraca łańcuch o zerowej długości ("").
Aby wygenerować listę wszystkich plików istniejących w określonym katalogu, należy wykonać następujące czynności. Przy pierwszym wywołaniu funkcji Dir należy podać pełną ścieżkę wyszukiwania plików, na przykład D:\Pliki\*.sxw. Jeśli ścieżka jest poprawna i proces wyszukiwania znalazł co najmniej jeden plik, funkcja Dir zwraca nazwę pierwszego pliku zgodnego ze ścieżką wyszukiwania. Aby zwrócić nazwy kolejnych plików zgodnych ze ścieżką, należy wywołać funkcję Dir ponownie, nie podając żadnych argumentów.
Aby zwrócić tylko nazwy katalogów, należy użyć parametru Atrybut. Dotyczy to również przypadku, gdy ma zostać określona nazwa woluminu (np. partycja dysku twardego).
Sub Przyklad_Dir
REM Wyświetlenie listy wszystkich plików i katalogów
Dim sSciezka As String
Dim sKatalog as String, sWartosc as String
sKatalog="Katalogi:"
sSciezka = CurDir
sWartosc = Dir$(sSciezka + getPathSeparator + "*",16)
Do
If sWartosc <> "." and sWartosc <> ".." Then
if (GetAttr( sSciezka + getPathSeparator + sWartosc) AND 16) >0 then
REM pobieranie katalogów
sKatalog = sKatalog & chr(13) & sWartosc
End If
End If
sKatalog = Dir$
Loop Until sWartosc = ""
MsgBox sKatalog,0,sSciezka
End sub