Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

aDir [AS]

Autor: Eurai Criado: 03/11/2024 Atualizado: 15/11/2024

Descrição

Preenche uma série de arrays com informações de arquivos e diretórios (nomes de arquivos, tamanhos, datas, horas e atributos.

 

Sintaxe

Directory( [cEspecArq], [@aNomesArq], [@aTamanhos], [@aDatas], [@aHoras], [@aAtributos], [lChangeCase] )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
cEspecArq Caracter
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 *.*. A função irá listar os 10.000 primeiros arquivos com a mascará indicada, caso necessário o arquivo 10001 em diante, informar ":10000" por exemplo para os proximos 10.000 arquivos (Comportamento em build superior a 7.00.131227-20160630)      
02 aNomesArq Array 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
03 aTamanhos Array Indica o array que será preenchido com os tamanhos dos arquivos correspondentes no array . Cada elemento será numérico      X
04 aDatas Array Indica o array que será preenchido com as datas dos arquivos correspondentes no array . Cada elemento será do tipo data (D)      X
05 aHoras Array 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
06 aAtributos Array 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.      
07 lChangeCase Logical Se verdadeiro (.T.), nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.), não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações      
             

 

Retorno

Retorno Tipo Descrição
nRet Númerico
Retorna a quantidade de arquivos encontrados que correspondem à máscara de pesquisa no diretório especificado

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function Directory()
Local aFiles := {}
Local aSizes := {}
Local nX := 0
 
aFiles := ADir( cPathPDF + "\*.pdf*", aFiles, aSizes )
For nX := 1 to Len( aFiles )
 Conout('Arquivo: ' + aFiles[nX] + ' - Size: ' + AllTrim(Str(aSizes[nX])) )
Next nX
 
Return( Nil )

Resultado
                                       

 

 

Informações adicionais

Listar um diretório com muitos arquivos pode causar problemas de desempenho no Appserver, já que todos as suas informações serão transportados para um Array. A proporção é de, em média, 100MBs em apenas uma execução a cada 100.000 arquivos

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 pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves

 

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎