Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle
ADir
ADir

Função: ADir

Preenche

...

uma

...

série

...

de

...

arrays

...

com

...

informações

...

de

...

arquivos

...

e

...

diretórios

...

(nomes

...

de

...

arquivos,

...

tamanhos,

...

datas,

...

horas

...

e

...

atributos).

Sintaxe

Bloco de código
collapsefalse
ADir([cEspecArq], [@aNomesArq], [
aNomesArq
@aTamanhos], [
aTamanhos
@aDatas], [
aDatas
@aHoras], [
aHoras
@aAtributos], [
aAtributos
lChangeCase] )
--> nRet

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 *.*. 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)



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 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

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 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.


Aviso
titleAtenção!
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.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
User Function adir()
  
  em um array multidimensional.
Local aFiles := {} // O array receberá os nomes dos arquivos e do diretório
 
diretórioLocal
 Local aSizes := {} // O array receberá os tamanhos dos arquivos e do
diretorioLocal nXADir
 diretorio
  Local nX
  ADir("c:\garbage\*.*", aFiles, aSizes)
  // Exibe dados dos 
arquivosnCount
arquivos
  nCount := Len( aFiles )
  For nX := 1 to nCount
    ConOut( 'Arquivo: ' + aFiles[nX] + ' - Size: ' + AllTrim(Str(aSizes[nX])) )
  Next nX
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  ADir("c:\garbage\*.*:10000", aFiles, aSizes) //proximos 10 mil arquivos
  For nX := 1 to nCount
    ConOut( 'Arquivo: ' + aFiles[nX] + ' - Size: ' + AllTrim(Str(aSizes[nX])) )
  Next nX
Return

Abrangência

TOTVS Application Server

Veja também