Funzione Dir

Restituisce il nome di un file, di una cartella o di tutti i file e le cartelle contenuti in un dispositivo o in una cartella che corrisponde al percorso di ricerca specificato.

Sintassi:

Dir [(Text As String) [, Attrib As Integer]]

Valore restituito:

String

Parametri:

Text (Testo): stringa che specifica il percorso di ricerca, la cartella o il file. L'argomento può essere specificato solo la prima volta che viene chiamata la funzione Dir. Se necessario, potete inserire il percorso in forma di notazione URL.

Attrib: numero intero che specifica gli attributi del file in bit. La funzione Dir restituisce solo i file o le cartelle che corrispondono agli attributi specificati. Potete combinare diversi attributi sommandone i valori:

0 : File normali.

16 : Restituisce solo il nome della cartella.

Questo attributo permette di controllare l'esistenza di un file o di una cartella, o di determinare tutti i file e le cartelle contenuti in una cartella specifica.

Per controllare l'esistenza di un file, inserite il percorso completo e il nome del file. Se il file o la cartella non esiste, la funzione Dir restituisce una stringa di lunghezza zero ("").

Per generare un elenco completo dei file contenuti in una cartella specifica, procedete come segue: La prima volta che chiamate la funzione Dir, specificate il percorso di ricerca completo per i file, ad esempio, "D:\Files\*.ods". Se il percorso è corretto e la ricerca restituisce almeno un file, la funzione Dir restituisce il nome del primo file che corrisponde al percorso di ricerca. Per restituire altri nomi di file che corrispondano al percorso, chiamate nuovamente la funzione Dir, ma senza argomenti.

Per restituire solo i nomi delle cartelle, usate il parametro dell'attributo. Lo stesso vale se volete determinare il nome di un volume (ad esempio, una partizione di un disco rigido).

Codici di errore:

5 Richiamo di procedura non valido

53 File non trovato

Esempio:

Sub ExampleDir

' Visualizza tutti i file e le cartelle

Dim sPath As String

Dim sDir As String, sValue As String

    sDir="Cartelle:"

    sPath = CurDir

    sValue = Dir$(sPath + getPathSeparator + "*",16)

    Do

        If sValue <> "." And sValue <> ".." Then

            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then

                ' Restituisce le cartelle

                sDir = sDir & chr(13) & sValue

            End If

        End If

        sValue = Dir$

    Loop Until sValue = ""

    MsgBox sDir,0,sPath

End Sub