Conteúdo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Fundo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Desenho: Liso Onda Linha Retalho Madeira Rocha Couro Colméia Vertical Triângulo
Bem-vindo ao Fórum do BABOO!

Desde 2000 o Fórum do BABOO tem ajudado milhões de internautas de Windows a resolverem seus problemas e dúvidas, além de ajudar na remoção de vírus e malwares de seus computadores. Somos o único fórum brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows, então se você tem uma dúvida ou problema que nenhum outro fórum resolve, poste-a aqui pois o MVP Babooadora desafios!
  

O Fórum do BABOO também conta com a participação exclusiva do administrador da área de Segurança MVP Mr.Million que tem reconhecimento internacional da Microsoft pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Se o seu computador está infectado por algum vírus, ele te ajudará a removê-lo!
  

Nosso time de especialistas também inclui Patropi  Osvaldomp  Caze  Ciro-Mota  XERLOUCO ROUMS  Tatha que responderão suas dúvidas sobre diversos assuntos.
 

Participe da nossa comunidade! 

Entre para seguir isso  
Seguidores 0
flaviotomazio

Localizar Arquivos usando Delphi

6 posts neste tópico

Olá pessoal, gostaria de saber como faço para localizar arquivos com uma certa extensão e exibilos numa lista.

Obrigado


74980-Revolucione23.jpg

  www.awanahybridus.com.br - Para dúvidas use o fórum e não MP

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TForm1.Localizar(Local: string; ListBox: TListBox);

var

SearchRec: TSearchRec;

begin

Local:= Trim(Local);

if Local[length(Local)] <> '' then

Local:= Local + '';

SetCurrentDir(Local);

if FindFirst('*.*', faAnyFile, SearchRec) = 0 then // modifica aqui Ex: para mp3 '*.mp3'

Repeat

ListBox.Items.Add(SearchRec.Name);

Until FindNext(SearchRec) <> 0;

FindClose(SearchRec);

end;

para usar

Localizar('C:', ListBox1);

falou

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso o LOCAL seria o que? Como faço para chamar essa procedure quando eu clicar em um botão?

Obrigado


74980-Revolucione23.jpg

  www.awanahybridus.com.br - Para dúvidas use o fórum e não MP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Local é o local onde você quer procurar, eu vou por uma unit aqui para você ver .

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;

type

TForm1 = class(TForm)

ListBox1: TListBox;

Button1: TButton;

procedure Localizar(Local: string; ListBox: TListBox);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Localizar(Local: string; ListBox: TListBox);

var

SearchRec: TSearchRec;

begin

Local:= Trim(Local);

if Local[length(Local)] <> '' then

Local:= Local + '';

SetCurrentDir(Local);

if FindFirst('*.*', faAnyFile, SearchRec) = 0 then // modifica aqui Ex: para mp3 '*.mp3'

Repeat

ListBox.Items.Add(SearchRec.Name);

Until FindNext(SearchRec) <> 0;

FindClose(SearchRec);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Localizar('C:', ListBox1); // pegando arquivos de C:

{ é assim, para pegar da pasta arquivos e programas

por exemplo: Localizar('C:Arquivos de programas', ListBox1);

ele vai pegar e por os arquivos em uma ListBox}

end;

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu funcionou, mas outra duvida, como eu faço para listar do computador inteiro?


74980-Revolucione23.jpg

  www.awanahybridus.com.br - Para dúvidas use o fórum e não MP

Compartilhar este post


Link para o post
Compartilhar em outros sites

....................................................................

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

ListBox1: TListBox;

Button1: TButton;

function RecurseDirectory(FileName: string): TStringList;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

type

PRecInfo = ^TRecInfo;

TRecInfo = record

Prev: PRecInfo;

fPathName: string;

SearchRec: TSearchRec;

end;

implementation

{$R *.dfm}

function TForm1.RecurseDirectory(FileName: string): TStringList;

var

f1, f2: TSearchRec;

p1, tmp: PRecInfo;

fwc: string;

fpath: string;

fbroke1, fbroke2: boolean;

begin

Result:= TStringList.Create;

fpath:= ExtractFilePath(FileName);

fwc:= ExtractFileName(FileName);

New(p1);

p1.fPathName:= fpath;

p1.Prev:= nil;

fbroke1:= false;

fbroke2:= false;

while p1 <> nil do begin

if fbroke1 = false then

if fbroke2 = false then

begin

if FindFirst(fpath + ''*'', faAnyFile, f1) <> 0 then

Break;

end

else if FindNext(f1) <> 0 then begin

Repeat

FindClose(f1);

if p1 = nil then

break;

fpath:= p1.fPathName;

f1:= p1.SearchRec;

tmp:= p1.Prev;

Dispose(p1);

p1:= tmp;

Until FindNext(f1) = 0;

if p1 = nil then Break;

end;

if (f1.Name <> ''.'') and (f1.Name <> ''..'') and ((f1.Attr and faDirectory) = faDirectory) then

begin

fbroke1:= false;

New(tmp);

with tmp^ do begin

fPathName:= fpath;

SearchRec.Time:= f1.Time;

SearchRec.Size:= f1.Size;

SearchRec.Attr:= f1.Attr;

SearchRec.Name:= f1.Name;

SearchRec.ExcludeAttr:= f1.ExcludeAttr;

SearchRec.FindHandle:= f1.FindHandle;

SearchRec.FindData:= f1.FindData;

end;

tmp.Prev:= p1;

p1:= tmp;

fpath:= p1.fPathName+f1.Name+'''';

if FindFirst(fpath+fwc, faAnyFile, f2) = 0 then begin

Result.Add(fpath+f2.Name);

while FindNext(f2) = 0 do

Result.Add(fpath+f2.Name);

FindClose(f2);

end;

fbroke2:= false;

end else begin

if FindNext(f1) = 0 then begin

FindClose(f1);

fpath:= p1.fPathName;

f1:= p1.SearchRec;

fbroke1:= false;

fbroke2:= true;

tmp:= p1.Prev;

Dispose(p1);

p1:= tmp;

end else begin

fbroke1:= true;

fbroke2:= false;

end;

end;

end;

fpath:= ExtractFilePath(FileName);

if FindFirst(FileName, faAnyFile, f1) = 0 then begin

Result.Add(fpath+f2.Name);

while FindNext(f1) = 0 do

Result.Add(fpath+f2.Name);

FindClose(f1);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

l1:Tstringlist;

begin

l1:=tstringlist.create;

listbox1.items.clear;

listbox1.Items.BeginUpdate;

l1:= recursedirectory(''C:*.*'');

listbox1.items.assign(l1);

freeandnil(l1);

listbox1.Items.endUpdate;

end;

end.

se alguém puder corrigir isso aí para mim, só está listando pastas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Responda via Facebook

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Quer postar a sua dúvida? Cadastre-se pois é rápido e fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Esse tópico é útil para você?
Então compartilhe e ajude outros internautas!
Entre para seguir isso  
Seguidores 0

O site BABOO está no ar para informar e ajudar o internauta de Windows. Este site foi publicado em 1999 por Aurélio "Baboo", engenheiro e um dos maiores especialistas brasileiros em Windows, que trabalha profissionalmente com esse sistema operacional desde 1987. Desde 2004 ele é premiado anualmente pela Microsoft como MVP (Most Valuable Professional) pela sua contribuição e ajuda à comunidade de usuários de Windows.

Em 2001 foi criado o
Fórum do BABOO para ajudar o internauta brasileiro a solucionar problemas e dúvidas sobre Windows, Segurança, Office, Hardware e outros temas. Desde 2010 a Microsoft também tem premiado o Mr.Million, administrador da área de Segurança do Fórum do BABOO, pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Atualmente ele é o único MVP brasileiro de Segurança em desktop.

O BABOO é o único site brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows e que participa diariamente e ativamente nos comentários e discussões do site e fórum BABOO.