listar arquivos

Delphi

21/06/2004

Como listar os arquivos de um diretorio , listar os arquivos que estejam dentro de pastas e subpastas.


Framos

Framos

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

21/06/2004

Tente usar o componente [b:2b97387b39]FILELISTBOX[/b:2b97387b39] que já vem com o delphi.


GOSTEI 0
Lucas Silva

Lucas Silva

21/06/2004

[quote:7495884b1a=´Lucas Alves Silva´]Tente usar o componente [b:7495884b1a]FILELISTBOX[/b:7495884b1a] que já vem com o delphi.[/quote:7495884b1a]
...ou um [b:7495884b1a]DirectoryListBox[/b:7495884b1a]


GOSTEI 0
Framos

Framos

21/06/2004

mais eles listam os arquivos de pastas e subpastas ???

ou eu tenho que ir abrindo pasta por pasta para ele me mostrar os arquivos que tem dentro???


GOSTEI 0
Lucas Silva

Lucas Silva

21/06/2004

Colega,
Colque um DirectoryListBox, e um FileListBox no seu form.
procedure TForm1.DirectoryListBox1DblClick(Sender: TObject);
begin
  FileListBox1.ApplyFilePath(DirectoryListBox1.Directory);
end;



GOSTEI 0
Framos

Framos

21/06/2004

Amigos,

talvez eu que não esteja sendo claro...o que eu quero é , por exemplo , ao escolher o C:\ ele liste todos os arquivos....todos mesmo...todos que estão no c:\ e dentro das pastas do C:\ e dentro das pastas que estão dentro da pasta do C:\ e assim por diante!!!

se alguém puder me ajudar??


GOSTEI 0
Framos

Framos

21/06/2004

alguém ??


GOSTEI 0
Ertai

Ertai

21/06/2004

Eu tenho isso pronto... se quiser me manda um email que eu te envio o fonte...


GOSTEI 0
Lucas Silva

Lucas Silva

21/06/2004

Amigos, talvez eu que não esteja sendo claro...o que eu quero é , por exemplo , ao escolher o C:\ ele liste todos os arquivos....todos mesmo...todos que estão no c:\ e dentro das pastas do C:\ e dentro das pastas que estão dentro da pasta do C:\ e assim por diante!!! se alguém puder me ajudar??


Olha bem o exemplo que te passei acima, é exatamente isso..


GOSTEI 0
Ertai

Ertai

21/06/2004

é isso mesmo que eu tenho...


GOSTEI 0
Framos

Framos

21/06/2004

Amigos fiz da seguinte forma:


- Coloquei um DirectoryListBox, e um FileListBox no meu form
- adicionei um button e no onclick coloquei

FileListBox1.ApplyFilePath(DirectoryListBox1.Directory);


fiz um teste selecionando o c:\ do directorylistbox e cliquei no button , ele me mostrou no filelistbox apenas os arquivos que estão na raiz do c:\


GOSTEI 0
Dedi

Dedi

21/06/2004

amigo,

O que você quer é listar todos os arquivos de uma unidade?


GOSTEI 0
Framos

Framos

21/06/2004

Ta certo eu não to me explicando ao certo. Vou dizer qual o meu objetivo .

Eu quero fazer o seguinte quero cadastrar meus CDs de mp3 em um banco de dados , e meus cds de mp3 são divididos por pasta Rock , Axé ,Samba .... eu quero é listar todos os mp3s do meu cd para depois gravar no banco.


resumindo

listar arquivos de uma unidade!!


GOSTEI 0
Framos

Framos

21/06/2004

alguém ??


GOSTEI 0
Dedi

Dedi

21/06/2004

Amigo,

Tenha sempre em mãos o 800 dicas.


//632 - Procurando um arquivo em todo o HD
interface 
 
type 
PRecInfo=^TRecInfo; 
Trecinfo=record 
prev:PRecInfo; 
fpathname:string; 
srchrec:Tsearchrec; 
end; 
 
 
implememtation 
 
function TForm1.RecurseDirectory(fname:string):tstringlist; 
var 
 f1,f2:Tsearchrec; 
 p1,tmp:PRecInfo; 
 fwc:string; 
 fpath:string; 
 fbroke1,fbroke2:boolean; 
begin 
 result:=tstringlist.create; 
 fpath:=extractfilepath(fname); 
 fwc:=extractfilename(fname); 
 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.srchrec; 
   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; 
   srchrec.Time:=f1.time; 
   srchrec.Size:=f1.size; 
   srchrec.Attr:=f1.attr; 
   srchrec.Name:=f1.name; 
   srchrec.ExcludeAttr:=f1.excludeattr; 
   srchrec.FindHandle:=f1.findhandle; 
   srchrec.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.srchrec; 
    fbroke1:=false; 
    fbroke2:=true; 
    tmp:=p1.prev; 
    dispose(p1); 
    p1:=tmp; 
   end else begin 
    fbroke1:=true; 
    fbroke2:=false; 
   end; 
  end; 
 end; 
 fpath:=extractfilepath(fname); 
 if findfirst(fname,faAnyfile,f1)=0 then begin 
  result.add(fpath+f2.Name); 
  while(findnext(f1)=0) do 
   result.add(fpath+f2.Name); 
  findclose(f1); 
 end; 
end; 
 
//Chame a funcao deste jeito: 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 l1:Tstringlist; 
begin 
 l1:=tstringlist.create; 
 listbox1.items.clear; 
 listbox1.Items.BeginUpdate; 
 l1:=recursedirectory1(´D:\*.Mp3´); 
 listbox1.items.assign(l1); 
 freeandnil(l1); 
 listbox1.Items.endUpdate; 
end; 



GOSTEI 0
Regivan Brito

Regivan Brito

21/06/2004

Estou precisando dessa rotina também, no meu caso eu quero selecionar todos os arquivos em PDF de uma unidade ou diretório e subdiretórios em um listbox, se você poder me enviar agradeceria muito.

já consegui colocar apenas a pasta selecionado, porém, desejo a pasta e subpastas.

Tentei fazer o exemplo do Dedi e não funcionou.
GOSTEI 0
POSTAR