Observação: A função, método, objeto ou propriedade descrita neste tópico será desabilitada se o Serviço de Expressão de Jato da Microsoft 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 de área restrita, procure por "modo de área restrita" na Ajuda.
Retorna uma Cadeia de Caracteres 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 [, atributos] )]
A sintaxe da função Dir tem esses argumentos:
Argumento |
Descrição |
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 caracteres de comprimento zero ("") será retornada se pathname não for encontrado. |
Atributos |
Opcional. Constante ou expressão numérica, cuja soma especifica atributos de arquivo. Se omitido, retornará arquivos que correspondem ao nome de 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 apenas no Macintosh. |
Observação: Essas constantes são especificadas por 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, Dir dá suporte ao uso de caracteres múltiplos (*) e curingas de 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 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 seguinte instrução 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 atributo 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 nomes de arquivo adicionais que correspondam ao nome de caminho, chame Dir novamente sem argumentos. Quando não há mais nomes de arquivo correspondentes, Dir retorna uma cadeia de caracteres de comprimento zero (""). Depois que uma cadeia de caracteres 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 correspondem ao nome de caminho atual. No entanto, você não pode 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 VBA (Visual Basic for Applications). 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 determinados arquivos e diretórios existirem. No Macintosh, "HD:" é o nome da unidade padrão e partes do nome do caminho são separadas por pontos em vez de backslashes. Além disso, os caracteres curinga do Windows são tratados como caracteres válidos de nome de arquivo 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