Funció Dir
Torna el nom d'un fitxer, d'un directori, o de tots els fitxers i els directoris d'una unitat o d'un directori que coincideixin amb el camí de cerca especificat.
Sintaxi:
Dir [(Text As String) [, Attrib As Integer]]
Valor de retorn:
Cadena
Paràmetres:
Text: Qualsevol expressió de cadena que especifica el camí, directori o fitxer de cerca. Aquest argument només es pot especificar la primera vegada que crideu la funció Dir. Si ho voleu, podeu introduir el camí en notació URL.
Atribut: Qualsevol expressió d'enter que especifica atributs de fitxer bit a bit. La funció Dir només torna fitxers o directoris que coincideixin amb els atributs especificats. Podeu combinar diferents atributs afegint els valors d'atribut:
0 : Fitxers normals.
16 : Torna només el nom del directori.
Utilitzeu aquest atribut per a comprovar si un fitxer o un directori existeix, o per a determinar tots els fitxers i les carpetes d'un directori específic.
Per a comprovar si un fitxer existeix, introduïu el camí sencer i el nom del fitxer. Si el nom de fitxer o de directori no existeixen, la funció Dir torna una cadena de longitud zero ("").
Per a generar una llista de tots els fitxers existents en un directori específic, procediu tal com s'indica a continuació: la primera vegada que crideu la funció Dir, especifiqueu el camí de cerca complet per als fitxers, per exemple, «D:\Fitxers\*.ods». Si el camí és correcte i la cerca troba com a mínim un fitxer, la funció Dir torna el nom del primer fitxer que coincideix amb el camí de cerca. Per a tornar noms de fitxers addicionals que coincideixin amb el camí, torneu a cridar Dir, però sense arguments.
Per a retornar només directoris, utilitzeu el paràmetre d'atribut. El mateix és aplicable si voleu determinar el nom d'un volum (per exemple, una partició de disc dur).
Exemple:
Sub ExampleDir
' Mostra tots els fitxers i directoris
Dim sPath As String
Dim sDir As String, sValue As String
sDir="Directoris:"
sPath = CurDir
sValue = Dir$(sPath + getPathSeparator + "*",16)
Do
If sValue <> "." And sValue <> ".." Then
If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
' Obtenir els directoris
sDir = sDir & chr(13) & sValue
End If
End If
sValue = Dir$
Loop Until sValue = ""
MsgBox sDir,0,sPath
End Sub