Função Dir

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 de segurança, o que impede a avaliação de expressões potencialmente não seguras. Para obter mais informações sobre o modo de área de segurança, pesquise por "modo de área de segurança" na Ajuda.

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

Sintaxe

Dir[(pathname [, attributes] )]

A sintaxe da função Dir tem estes argumentos:

Argumento

Descrição

pathname

Opcional. A expressão de cadeia de caracteres que especifica um nome de arquivo pode incluir diretório ou pasta e unidade. Uma cadeia de caracteres de comprimento zero ("") será retornada se pathname não for encontrado.

attributes

Opcional. Constante ou expressão numérica, cuja soma especifica atributos de arquivo. Se omitido, retorna arquivos que corresponderem ao nome do caminho, mas não têm atributos.


Configurações

Os atributosargumento configurações sã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 arquivos do sistema, além de arquivos sem atributos. Não está disponível no Macintosh.

vbVolume

8

Especifica o rótulo de volume; se qualquer outro atributo for especificado, vbVolume será ignorado. Não está disponível no Macintosh.

vbDirectory

16

Especifica diretórios ou pastas além de arquivos sem atributos.

vbAlias

64

O nome do arquivo especificado é um alias. Disponível somente no Macintosh.


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

Comentários

No Microsoft Windows, Dir dá suporte ao uso de caracteres curinga de vários caracteres (*) e caractere único (?) 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 dá suporte aos caracteres curinga, 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 TEXT na pasta atual:

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

Para iterar 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 pathname 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 outros nomes de arquivo que corresponderem ao nome do caminho,chame Dir novamente sem argumentos. Quando nenhum nome de arquivo mais corresponder, Dir retornará uma cadeia de caracteres de comprimento zero (""). Depois que uma cadeia de caracteres de comprimento zero for retornada, você deverá 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 corresponderem ao nome do caminho atual. No entanto, não é possível chamar a função Dir de forma recursiva. Chamar Dir com o atributo vbDirectory não retorna continuamente subdiretórios.

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

Exemplo

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

Este exemplo usa a função Dir para verificar se determinados arquivos e diretórios existem. No Macintosh, "HD:" é o nome da unidade padrão e partes do nome do caminho são separadas por dois pontos em vez de backslashes. 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

Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×