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

Valor de retorno:

String

Parâmetros:

PathName: Qualquer expressão de string que especifique o caminho, diretório ou arquivo de pesquisa. Esse argumento só pode ser especificado na primeira vez que chamar a função Dir. Se desejar, você pode inserir o caminho em notação de URL.

Atributes: qualquer expressão inteira que especifica atributos de arquivo bit a bit. A função Dir retorna apenas arquivos ou diretórios que correspondem aos atributos especificados. Você pode combinar vários atributos adicionando os valores de atributo:

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

♥ Doe para nosso projeto! ♥