LibreOffice 7.5 Súgó
Visszaadja egy könyvtár, egy fájl vagy az összes olyan fájl, illetve könyvtár nevét egy meghajtón, illetve egy könyvtárban, amelyek megfelelnek a megadott keresési útvonalnak.
Dir [(Text As String [, Attrib As Integer])]
String (karakterlánc)
Szöveg: String (karakterlánc) kifejezés, amely megadja a keresési utat, a fájlt vagy a könyvtárat. Ez az argumentum csak a Dir függvény első meghívásakor adható meg. Igény szerint URL-jelöléssel is megadhatja az elérési utat.
Attribútum: Bármilyen integer (egész szám) kifejezés, amely megadja a fájlattribútum-biteket. A Dir függvény csak a megadott attribútumoknak megfelelő fájlokat vagy könyvtárakat adja vissza. Az attribútumértékek hozzáadásával számos attribútumot egyesíthet:
0 : Normál fájlok.
16 : Csak a könyvtár nevét adja vissza.
Ezzel az attribútummal ellenőrizheti egy könyvtár létezését, vagy meghatározhatja az adott könyvtárban levő összes fájlt és mappát.
Annak ellenőrzéséhez, hogy a fájl létezik-e, adja meg a fájl teljes elérési útját vagy nevét. Ha a fájl- vagy könyvtárnév nem létezik, akkor a Dir függvény nulla hosszúságú karakterláncot ad vissza ("").
Ha egy adott könyvtárban lévő összes fájlt akarja kilistázni, a következő módon járjon el: A Dir függvény első meghívásakor adja meg a fájlok keresésének teljes elérési útját, például "D:\Files\*.ods". Ha az elérési út helyes, és a keresés legalább egy fájlt talál, akkor a Dir függvény visszaadja a keresési útnak megfelelő első fájlt. Az elérési útnak megfelelő további fájlnevek visszaadásához hívja meg újra a Dir függvényt, de argumentumok nélkül.
Ha csak a könyvtárakat akarja visszaadni, használja az attribútumparamétert. Ugyanez érvényes, ha meg kívánja határozni a kötet (például merevlemez-partíció) nevét.
Sub ExampleDir
' Megjeleníti az összes könyvtárat és fájlt
Dim sPath As String
Dim sDir As String, sValue As String
sDir="Könyvtárak:"
sPath = CurDir
sValue = Dir$(sPath + getPathSeparator + "*",16)
Do
If sValue <> "." And sValue <> ".." Then
If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
' könyvtárak beolvasása
sDir = sDir & chr(13) & sValue
End If
End If
sValue = Dir$
Loop Until sValue = ""
MsgBox sDir,0,sPath
End Sub