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 [(PathName As String [, Attributes As Integer])]

Valore restituito:

String

Parametri:

PathName: 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, è possibile inserire il percorso in forma di notazione URL.

Attributes: 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. È possibile 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

Sosteneteci!