Função Dir

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Observação

A função, o método, o objeto ou a propriedade descrita neste tópico será desabilitada se o Serviço de Expressão do Microsoft Jet estiver em execução no modo de área restrita, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, pesquise "modo sandbox" na Ajuda.

Retorna uma String que representa o nome de um arquivo, diretório ou pasta que corresponde a um padrão ou atributo de arquivo especificado, ou o rótulo de volume de uma unidade.

Sintaxe

Dir[(pathname [, attributes] )]

A sintaxe da função Dir tem os seguintes argumentos:

Argumento Descrição
nome do caminho Opcional. Expressão de cadeia de caracteres que especifica um nome de arquivo — pode incluir diretório ou pasta e unidade. Uma cadeia de comprimento zero ("") é retornada se o nome do caminho não for encontrado.
do sistema Opcional. Expressão constante ou numérica, cuja soma especifica atributos de arquivo. Se omitido, retorna arquivos que correspondem ao nome do caminho , mas não têm atributos.

    

Configurações

As configurações de argumento de atributossão:

Constante Valor Descrição
vbNormal 0 (Padrão) Especifica arquivos sem atributos.
vbReadOnly 1 Especifica arquivos somente leitura, além de arquivos sem atributos.
vbHidden 2 Especifica arquivos ocultos, além de arquivos sem atributos.
VbSystem 4 Especifica os arquivos do sistema, além dos arquivos sem atributos. Não disponível no Macintosh.
vbVolume 8 Especifica o rótulo do volume; se qualquer outro atributo for especificado, vbVolume será ignorado. Não disponível no Macintosh.
vbDirectory 16 Especifica diretórios ou pastas, além de arquivos sem atributos.
vbAlias 64 O nome de arquivo especificado é um alias. Disponível apenas no Macintosh.

    

Observação

Essas constantes são especificadas pelo Visual Basic for Applications (VBA) e podem ser usadas em qualquer lugar do código no lugar dos valores reais.

Comentários

No Microsoft Windows, o Dir dá suporte ao uso de caracteres curinga de vários caracteres (*) e de um único caractere (?) para especificar vários arquivos. No Macintosh, esses caracteres são tratados como caracteres de nome de arquivo válidos e não podem ser usados como curingas para especificar vários arquivos.

Como o Macintosh não é compatível com os curingas, use o tipo de arquivo para identificar grupos de arquivos. Você pode usar a função MacID para especificar o tipo de arquivo em vez de usar os nomes de arquivo. Por exemplo, a instrução a seguir retorna o nome do primeiro arquivo de texto na pasta atual:

Dir("SomePath", MacID("TEXT"))

Para iterar em todos os arquivos em uma pasta, especifique uma cadeia de caracteres vazia:

Dir("")

Se você usar a função MacID com Dir no Windows, ocorrerá um erro.

Qualquer valor de atributos maior que 256 é considerado um valor MacID .

Você deve especificar o nome do caminho na primeira vez que chamar a função Dir ou ocorrerá um erro. Se você também especificar atributos de arquivo, o nome do caminho deverá ser incluído.

Dir retorna o primeiro nome de arquivo que corresponde ao nome do caminho. Para obter nomes de arquivo adicionais que correspondam ao nome do caminho, chame Dir novamente sem argumentos. Quando não houver mais correspondência de nomes de arquivo, Dir retornará uma cadeia de comprimento zero (""). Depois que uma cadeia de comprimento zero é retornada, você deve especificar o nome do caminho em chamadas subsequentes ou ocorrerá um erro. Você pode alterar para um novo nome de caminho sem recuperar todos os nomes de arquivo que correspondam ao nome do caminho atual. No entanto, você não pode chamar a função Dir recursivamente. Chamar Dir com o atributo vbDirectory não retorna subdiretórios continuamente.

Dica Como os nomes de arquivos são recuperados em nenhuma ordem específica, talvez você queira armazenar os nomes de arquivos retornados em uma matriz e, em seguida, classificar a matriz.

Exemplo

Observação

Os exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

Este exemplo usa a função Dir para marcar se existem determinados arquivos e diretórios. No Macintosh, "HD:" é o nome da unidade padrão e partes do nome do caminho são separadas por dois-pontos em vez de barras invertidas. Além disso, os caracteres curinga do Windows são tratados como caracteres de nome de arquivo válidos no Macintosh. No entanto, você pode usar a função MacID para especificar grupos de arquivos.

Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")    
' Returns filename with specified extension. If more than one *.ini
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")
' Call Dir again without arguments to return the next *.INI file in the 
' same directory.
MyFile = Dir
' Return first *.TXT file with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)
' Display the names in C:\ that represent directories.
MyPath = "c:\"    ' Set the path.
MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.
Do While MyName <> ""    ' Start the loop.
    ' Ignore the current directory and the encompassing directory.
    If MyName <> "." And MyName <> ".." Then
        ' Use bitwise comparison to make sure MyName is a directory.
        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
            Debug.Print MyName    ' Display entry only if it
        End If    ' it represents a directory.
    End If
    MyName = Dir    ' Get next entry.
Loop