Preenche uma série de arrays com informações de arquivos e diretórios (nomes de arquivos, tamanhos, datas, horas e atributos).
Sintaxe
ADir( [ cEspecArq ], [ @aNomesArq ], [ @aTamanhos ], [ @aDatas ], [ @aHoras ], [ @aAtributos ], [ lchangeCase ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cEspecArq | caractere | Indica o path e máscara de arquivos a ser pesquisado. Para isso, pode-se incluir caracteres do tipo curinga * e ?, como também se referenciar ao diretório ou path. Caso nada seja especificado, o parâmetro assumirá como padrão *.* |
|
|
aNomesArq | vetor | Indica o array que será preenchido com os nomes de arquivos que correspondem a . Cada elemento contém o nome do arquivo e extensão no formato string em maiúsculo. |
| X |
aTamanhos | vetor | Indica o array que será preenchido com os tamanhos dos arquivos correspondentes no array . Cada elemento será numérico. |
| X |
aDatas | vetor | Indica o array que será preenchido com as datas dos arquivos correspondentes no array . Cada elemento será do tipo data (D) |
| X |
aHoras | vetor | Indica o array que será preenchido com as horas dos arquivos correspondentes no array . Cada elemento preenchido, contém uma string no formato hora, minutos e segundos (hh:mm:ss). |
| X |
aAtributos | vetor | Indica o array que será preenchido com os atributos dos arquivos correspondentes no array . Cada elemento é uma string. Caso seja especificado, os arquivos de diretório, sistema e escondidos são inclusos, assim como os arquivos normais. Mas se não for especificado, somente os arquivos normais serão inclusos. |
| X |
lchangeCase | lógico | Se .T. converte o nome dos arquivos para letra maiúscula (UPPER CASE), se .F. mantém o nome dos arquivos igual ao original. Caso não especificado, o valor padrão depende de como está configurado as chaves de ini CASESENSITIVE ou SERVERTYPE. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
nRet | numérico | Retorna a quantidade de arquivos encontrados que correspondem à máscara de pesquisa no diretório especificado. |
Observações
- Diretórios: Caso o parâmetro aAtributos seja especificado e cEspecArq seja especificado como *.*, os diretórios serão incluídos em aNomesArq. No array aAtributos, os diretórios são indicados com um valor atributo de "D." Se ADir() for executada dentro de um subdiretório, as duas primeiras entradas do array aNomesArq são "." e "..", os "alias" dos diretórios corrente e raiz. A data e hora da última atualização são informadas para diretórios, mas o tamanho de um diretório é sempre zero.
- Esta função foi mantida por compatibilidade, e definida como obsoleta. aDir() foi substituída pela função Directory(), que retorna todas as informações do(s) arquivo(s) em um array multidimensional.
- O parâmetro opcional lChangeCase foi introduzido a partir do build 7.00.131227A e quando informado, terá prioridade sobre o comportamento de CASE SENSITIVE definido pela chave de ini CASESENSITIVE ou SERVERTYPE.
Exemplos
User Function adir() Local aFiles := {} // O array receberá os nomes dos arquivos e do diretório Local aSizes := {} // O array receberá os tamanhos dos arquivos e do diretorio Local nX ADir("c:\garbage\*.*", aFiles, aSizes) // Exibe dados dos arquivos nCount := Len( aFiles ) For nX := 1 to nCount ConOut( 'Arquivo: ' + aFiles[nX] + ' - Size: ' + AllTrim(Str(aSizes[nX])) ) Next nX Return
Abrangência
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server