Conteúdo

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

### Tipo de retorno:

Cadeia

### Parâmetros:

PathName: Any string expression that specifies the search path, directory or file. This argument can only be specified the first time that you call the Dir function. If you want, you can enter the path in URL notation.

Attributes:Any integer expression that specifies bitwise file attributes. The Dir function only returns files or directories that match the specified attributes. You can combine several attributes by adding the attribute values:

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).

### Códigos de erro

5 Chamada de procedimento inválido

53 Ficheiro não encontrado

### 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

Tópicos relacionados

CurDir Function

CompatibilityMode() Function

Instrução Option VBASupport

Necessitamos da sua ajuda!