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
Agora Vamos na Clausula Uses e Vamos retirar a Unit SYSUTILS
após Retira-laVamos Adicionar Biblioteca Windows em uses ficando Assim
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 :
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
Agora vamos Codar Entre o Begin e o End; da Nossa Função
Vamos Atribuir a Nossa Variavel Handle a Função Windows.FindFirstFile;
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
Se Acontecer Algum Erro ele Imprime na Tela Vamos utilizar o Else
Para se não Acontecer erro ele Listar os Arquivos
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.
Bom Galera é Issu rotina Parecida com a FindFirst ,FindNEXT() da SysUtils
espero que tenham gostado Abracss Almeida
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.
{$APPTYPE CONSOLE}
Uses
SysUtils;
begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
após Retira-laVamos Adicionar Biblioteca Windows em uses ficando Assim
uses
Windows;
Windows;
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.
{$APPTYPE CONSOLE}
Uses Windows;
Function ListarArquivos(Caminho : String) : String;
Begin
End;
Begin
End.
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;
Var
Handle : THandle;
Almeida : Twin32FindData;
Begin
End;
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;
FindFirstFile (
lpFileName: PChar; (um ponteiro para um ficheiro)
var lpFindFileData: (TWin32FindData um ponteiro para uma estrutura TWin32FindData)
): THandle;
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.
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.
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.
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.
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.
WriteLn(ListarArquivos(‘C:\’)); // Lista todos os Arquivos do Meu Dir C:\
Sleep(5000);
End.
espero que tenham gostado Abracss Almeida
Comment