Funções aDir e Directory para listar arquivos de um diretório – Maratona AdvPL e TL++ 027

Nesse vídeo demonstraremos em como listar arquivos de uma pasta em um Array usando as funções aDir e Directory.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"
 
/*/{Protheus.doc} User Function zExe027
Exemplo de funções que buscam pastas e arquivos dentro de uma pasta através da aDir e Directory
@type Function
@author Atilio
@since 26/11/2022
@see https://tdn.totvs.com/display/tec/ADir e https://tdn.totvs.com/display/tec/Directory
@obs Função aDir
    Parâmetros
        + cEspecArq                 - Caractere  - Indica o diretório de pesquisa
        + aNomesArq   (Opcional)    - Array      - Indica o Array com nome dos arquivos
        + aTamanhos   (Opcional)    - Array      - Indica o Array com tamanho dos arquivos
        + aDatas      (Opcional)    - Array      - Indica o Array com data dos arquivos
        + aHoras      (Opcional)    - Array      - Indica o Array com horas dos arquivos
        + aAtributos  (Opcional)    - Array      - Inclui pastas e outros atributos (no link do TDN acima tem todos os tipos)
        + lChangeCase (Opcional)    - Lógico     - .F. mantém o nome do arquivo e .T. transforma para minúsculo
    Retorno
        + nRet                      - Numérico   - Quantidade de arquivos
 
    Função Directory
    Parâmetros
        + cDirEsp                   - Caractere  - Indica o diretório de pesquisa
        + cAtributos     (Opcional) - Caractere  - Inclui pastas, arquivos ocultos (no link do TDN acima tem todos os tipos)
        + uParam1        (Opcional) - Indefinido - Compatibilidade
        + lCaseSensitive (Opcional) - Lógico     - .F. mantém o nome do arquivo e .T. transforma para maiúsculo
        + nTypeOrder     (Opcional) - Numérico   - Tipo de Ordenação (1 nome do arquivo, 2 data do arquivo e 3 tamanho do arquivo)
    Retorno
        + aRet                      - Array      - Retorna um Array com os detalhes dos arquivos da pasta
 
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
 
User Function zExe027()
    Local aArea     := FWGetArea()
    Local aArqui1   := {}
    Local aArqui2   := {}
 
    //Busca arquivos via aDir
    aDir("C:\spool\*.*", aArqui1)
 
    //Busca arquivos via Directory
    aArqui2 := Directory("C:\spool\*.*")
 
    FWAlertInfo("Tamanho do aArqui1: " + cValToChar(Len(aArqui1)) + ", aArqui2: " + cValToChar(Len(aArqui2)), "Atenção")
 
    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação