Histórico da Página
...
Pagetitle | ||||
---|---|---|---|---|
|
Cria um Retorna um array bidimensional com o conteúdo de um diretório.
Para isso, retorna informações a respeito dos arquivos no diretório corrente ou especificado. Essa função é semelhante a ADir(), porém, retorna um único array ao invés de adicionar valores a uma série de arrays existentes passados por referência
Consulte a função ADir para outras funcionalidades.
Aviso | ||
---|---|---|
| ||
Esta função só pode ser utilizada no SmartClient HTML (WebApp), utilizando o WegAgent, mais informações aqui. |
Sintaxe
Bloco de código | ||
---|---|---|
| ||
Directory( < cDirEsp >, [ cAtributos ], [ uParam1 ], [ lCaseSensitivelConvertCase ], [ nTypeOrder ] ) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cDirEsp | caractere | Indica o diretório que será pesquisado e os arquivos que serão apresentados. Além disso, para pesquisa. | X | cAtributos | caractere | Indica quais arquivos com atributos especiais devem ser incluídos no array. Esse parâmetro consiste em uma string que contém, por exemplo, um ou mais dos caracteres H, S, D e V (alem de : para indicar arquivos a ser exibidos). Para mais detalhes, consulte a Tabela A na área Observações. | uParam1 | numérico | Parâmetro de compatibilidade. Passar Nil. | lCaseSensitive | lógico | Indica se, verdadeiro (.T.), o nome do arquivo será transformado para letra maiúscula; caso contrário, falso (.F.), o nome do arquivo será retornado conforme escrito no disco rígido. | nTypeOrder | numérico | Indica o tipo de ordenação do resultado da função. Apenas em build Appserver superiores a 7.00.131227A. |
Retorno
...
Nome
...
Tipo
...
Descrição
...
aRet
...
vetor
...
Retorna um array de subarrays, sendo que cada subarray contém informações sobre cada arquivo que atenda o parâmetro (<cDirSpec>). Para mais detalhes, consulte a tabela B na área Observações.
( *.* )
| X | |||||
cAtributos | caractere | Indica quais tipos de arquivos/diretórios devem ser incluídos no array.
Para mais detalhes, consulte a Tabela A abaixo:
|
Observações
Aviso | ||
---|---|---|
| ||
Quando executado via SmartClient HTML, o sistema não tem acesso aos arquivos da estação/cliente (Remote). |
Aviso | ||
---|---|---|
| ||
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, 300MBs em apenas uma sessão a cada 100.000 arquivos. Por esse motivo, o comportamento da Directory foi alterada nos builds Appserver superiores a 7.00.131227A-20130404, limitada a 10.000 arquivos por chamada. Consulte abaixo maiores detalhes. |
Aviso | ||
---|---|---|
| ||
A função tem uma limitação de apresentar apenas os primeiros 10.000 arquivos, sendo qualquer excedente ignorado. |
...
| Informa caso necessite o arquivo 10001 em diante. Ex: informar ":10000" por exemplo para os proximos 10.000 arquivos (Comportamento em build superior a
| 131227
| ). Esse parâmetro dever ser obrigatoriamente o ultimo.
Importante
Arquivos normais são sempre incluídos na pesquisa, a não ser que "V" seja especificado.
Tabela B - Estrutura dos subarrays
Posição | Meta simbolo | directory.ch |
1 | cNome | F_NAME |
2 | cTamanho | F_SIZE |
3 | dData | F_DATE |
4 | cHora | F_TIME |
5 | cAtributos | F_ATT |
- Caso seja especificado um path sem a unidade de disco, o mesmo será considerado no ambiente do servidor, a partir do RootPath do ambiente (caso o path comece com \ ou /), ou a partir do StartPath do ambiente (caso o path não seja iniciado com \ ou /).
- Quando um path absoluto é especificado (com unidade de disco preenchida), a função será executada na estação em que o SmartClient está em execução.
- O tipo de ordenação pode ser definido conforme tabela:
...
| |||||||||||||||
uParam1 | numérico | Parâmetro de compatibilidade, não deve ser preenchido. | |||||||||||||
lConvertCase | lógico | Se verdadeiro (.T.), os nomes de arquivos presentes serão retornados todos em MAIÚSCULO. Caso falso (.F.), os nomes de arquivos presentes são retornados como estão no disco rígido. | |||||||||||||
nTypeOrder | numérico | Indica o tipo de ordenação do resultado da função.
|
...
Retorno
Nome | Tipo | Descrição | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
aRet | vetor | Retorna um array que contém informações sobre cada arquivo / diretório que atenda aos requisitos
|
Exemplos
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
User Function Exemplo1() Local aFiles := {} Local nX local nCount aFiles := Directory("c:\garbage\*.*", "D") nCount := Len( aFiles ) For nX := 1 to nCount ConOut('Arquivo: ' + aFiles[nX,1] + ' - Size: ' + AllTrim(Str(aFiles[nX,2])) ) Next nX Return User Function Exemplo2() local F_NAME aDirectory := DIRECTORY("*.*", "D") F_NAME := Len(aDirectory) AEVAL(aDirectory, {|aFile| CONOUT(aFile[1])} ) Return User Function Exemplo3() Local aFiles := {} local nCount Local nX local flagparameters := "D:10000" //lista os arquivos entre 10.000 e 20.000, inclusive diretórios aFiles := Directory("c:\tmp\10kk\*.*", flagparameters, 1) nCount := Len( aFiles ) For nX := 1 to nCount ConOut('Arquivo: ' + aFiles[nX,1] + ' - Size: ' + AllTrim(Str(aFiles[nX,2])) ) Next nX Return |