Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Tutorial]Listando Arquivos Via API

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi [Tutorial]Listando Arquivos Via API

    Ola Galera nesse tutorial vou ensinar a vocês Como Listarem Arquivos Via API Do Windows
    Primeiramente Abra o Delphi vá em File New Other Console Application

    program Project1;
    {$APPTYPE CONSOLE}
    Uses
    SysUtils;
    begin
    { TODO -oUser -cConsole Main : Insert code here }
    end.
    Agora Vamos na Clausula Uses e Vamos retirar a Unit SYSUTILS
    após Retira-laVamos Adicionar Biblioteca Windows em uses ficando Assim

    uses
    Windows;
    Agora Primeiro Vamos Criar uma Função Para Listar os Arquivos de Um Local corrente
    um diretório ,Etc. Inserindo Acima do Begin end Ficando Assim :

    program Project1;
    {$APPTYPE CONSOLE}
    Uses Windows;
    Function ListarArquivos(Caminho : String) : String;
    Begin
    End;
    Begin
    End.
    Bom Nossa Função Ira Retornar um Valor do Tipo String
    Que Sera os Arquivos Encontrados No Diretorio que Passamos
    Como Parametro em Caminho
    Próximo Passo Será Adicionar 2 variaveis Locais a Nossa Função

    Function ListarArquivos(Caminho : String) : String;
    Var
    Handle : THandle;
    Almeida : Twin32FindData;
    Begin
    End;
    Agora vamos Codar Entre o Begin e o End; da Nossa Função
    Vamos Atribuir a Nossa Variavel Handle a Função Windows.FindFirstFile;

    Sintaxe
    FindFirstFile (
    lpFileName: PChar; (um ponteiro para um ficheiro)
    var lpFindFileData: (TWin32FindData um ponteiro para uma estrutura TWin32FindData)
    ): THandle;
    Onde os parametros :

    IPFILENAME Passamos o Caminho do Diretorio Onde Queremos Listar podemos utilizar Um Filtro de Pesquisa Passando * Mais a Extensão dos Tipos dos Arquivos que quer listarOu Podemos Deixar Somente o * Para Listar todos os Arquivos do Diretorio.
    IPFINDFileDATA Passamos Nossa Variavel Almeida que é um Ponteiro da EstruturaTWIN32FINDDATA Onde Armazena informações do Arquivo Encontrado
    A estrutura TWIN32FINDDATA e um Registro que Contém algumas Informações dos Arquivos Listados Como
    dwFileAttributes: DWORD; //Atributos do Arquivo Listado
    cFileName: array [0 .. MAX_PATH - 1] //Amazena o Nome dos Arquivos Listado
    dando Continuidade ao tutorial Agora que Atribuimos a função Windows.FindFirstFile() Vamos Verificar Se a função Foi retornar Alguma falha ela Ira retornal o Valor
    INVALID_HANDLE_VALUE. Ficando Assim

    Function ListarArquivos(Caminho : String) : String;
    Var
    Handle : THandle;
    Almeida : Twin32FindData;
    Begin
    Handle : FindFirstFile(Pchar(Caminho + ‘\*’),Almeida);
    If (Handle = INVALID_HANDLE_VALUE) then
    Begin
    Writeln(‘Erro Falha ao Listar Arquivos’);
    End ;
    Begin
    End.
    Se Acontecer Algum Erro ele Imprime na Tela Vamos utilizar o Else
    Para se não Acontecer erro ele Listar os Arquivos

    If (Handle = INVALID_HANDLE_VALUE) then
    Begin
    Writeln(‘Erro Falha ao Listar Arquivos’);
    End else
    Begin
    Repeat
    WriteLn(Almeida.cFileName);
    Until
    FindNext(Handle,Almeida) = False
    End;
    Windows.findClose(handle);
    End;
    Begin
    End.
    Acima Fazemos um Laço de repetição o repeat until Para Ele escrever todos os Arquivos encontrados Ate que a próxima busca For Igual a Falso não encontre mais Nada
    Para a Finalizção do Laço Passamos Para a Sintaxe until
    A função FindnextFile(hFindFile: THandle; var lpFindFileData: TWin32FindData): Bool

    Ela Faz uma Proxima Busca Onde ela Retorna um Valor verdadeiro ou falso
    Enquanto ela For Verdadeira Vamos Adicionando o nome dos Arquivos Envontrados
    Quando ela Não encontrar Mais nenhum Arquivo ela for False
    Paramos o Nosso Laço de Busca
    E Fechamos a Nossa Busca com o Windows.findClose(Handle);

    Para Utilizar Entre o Begin End.

    Begin
    WriteLn(ListarArquivos(‘C:\’)); // Lista todos os Arquivos do Meu Dir C:\

    Sleep(5000);
    End.
    Bom Galera é Issu rotina Parecida com a FindFirst ,FindNEXT() da SysUtils
    espero que tenham gostado Abracss Almeida
    Last edited by .IndependentResearch.; 18-12-2009, 19:52.
    sigpic

  • Font Size
    #2
    Grande almeida... tuto ta bem explicado
    Parabéns, vai ajudar muito o pessoal...
    Valeu por compartilhar conosco...

    Abraços

    Comment


    • Font Size
      #3
      interressante, pode vir a ser util.

      Comment

      X
      Working...
      X