Função Dir
Devolve o nome de um ficheiro, diretório, ou todos os ficheiros e diretórios de uma unidade ou de um diretório que corresponda ao caminho da procura.
Sintaxe:
Dir [(Texto As String) [, Atributo As Integer]]
Valor de retorno:
Cadeia
Parâmetros:
Texto: qualquer expressão em cadeia que especifique o caminho, diretório ou ficheiro. Este argumento só pode ser especificado na primeira vez que utiliza a função Dir. Se quiser, pode introduzir o caminho utilizando a notação URL.
Atributo: qualquer expressão de número inteiro que especifique os atributos do ficheiro bitwise. A função Dir só devolve ficheiros ou diretórios que correspondam aos atributos especificados. Pode combinar diversos atributos adicionando os valores do atributo:
0 : Ficheiros normais.
16 : Devolve apenas o nome do diretório.
Utilize este atributo para verificar se um ficheiro ou diretório existe ou para determinar todos os ficheiros e pastas dentro de um diretório específico.
Para verificar se um ficheiro existe, introduza o caminho completo e o nome do ficheiro. Se o nome do ficheiro ou diretório não existir, a função Dir devolve uma cadeia de texto de comprimento zero ("").
Para gerar a lista de todos os ficheiros existentes num diretório específico, siga estas instruções. A primeira vez que invocar a função Dir, especifique o caminho de procura completo para os ficheiros, por exemplo, "D:\Files\*.ods". Se o caminho estiver correto e a procura encontrar pelo menos um ficheiro, a função Dir devolve o nome do primeiro ficheiro que corresponda ao caminho da procura. Para devolver nomes de ficheiros adicionais que correspondam ao caminho, invoque Dir novamente, mas sem argumentos.
Para apenas devolver diretórios, utilize o parâmetro de atributo. O mesmo é aplicável se pretender determinar o nome de um volume (por exemplo, uma partição de uma unidade de disco rígido).
Exemplo:
Sub ExampleDir
' Mostra todos os ficheiros e diretórios
Dim sPath As String
Dim sDir As String, sValue As String
sDir="Diretórios:"
sPath = CurDir
sValue = Dir$(sPath + getPathSeparator + "*",16)
Do
If sValue <> "." And sValue <> ".." Then
If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
' Obtém os diretórios
sDir = sDir & chr(13) & sValue
End If
End If
sValue = Dir$
Loop Until sValue = ""
MsgBox sDir,0,sPath
End Sub