Função Dir

Retorna o nome de um arquivo, de um diretório, ou de todos os arquivos e diretórios numa unidade ou num diretório que verifiquem o caminho de busca especificado.

Sintaxe:

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

Valor de retorno:

String

Parâmetros:

Text: qualquer expressão de cadeia de caracteres que especifica o caminho, diretório ou arquivo de pesquisa. Este argumento só pode ser especificado na primeira vez que chamar a função Dir. Se desejar, também pode-se digitar o caminho na notação URL.

Attrib: qualquer expressão de número inteiro que especifica atributos de arquivo bit a bit. A função Dir só retorna arquivos ou diretórios que correspondam aos atributos especificados. Para combinar diversos atributos, adicione os valores dos atributos:

0 : Arquivos normais.

16 : Retorna apenas o nome do diretório.

Use este atributo para verificar se um arquivo ou diretório existe ou para determinar todos os arquivos e pastas num diretório específico.

Para verificar se um arquivo existe, digite o caminho e o nome de arquivo completos. Se o nome do arquivo ou diretório não existir, a função Dir retornará uma cadeia de caracteres de comprimento zero ("").

Para gerar uma lista de todos os arquivos existentes em um diretório específico, siga estas instruções: Na primeira vez em que chamar a função Dir, especifique o caminho de pesquisa completo para os arquivos; por exemplo, "D:\Files\*.ods". Se o caminho estiver correto e a pesquisa localizar pelo menos um arquivo, a função Dir retornará o nome do primeiro arquivo que corresponda ao caminho de pesquisa. Para retornar nomes de arquivo adicionais que correspondam ao caminho, chame Dir novamente, mas sem argumentos.

Para retornar somente diretórios, use o parâmetro atributo. O mesmo se aplica se você deseja determinar o nome de um volume (por exemplo, uma partição de unidade de disco rígido)

Códigos de erro:

5 Chamada de procedimento inválida

53 Arquivo não encontrado

Exemplo:

Sub ExampleDir

' Exibe todos os arquivos 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