Mega Code Archive

 
Categories / Delphi / Files
 

Istenilen herhangibir klasör icerisinde joker karakterlerini kullanarak dosya arama

// // Formunuza Bir tane Buton, Edit ve Memo ekleyin. // // Kullanim sekli; // // DosyaListesiniAl(KlasorAdi,Liste,AltKlasor); // // KlasorAdi : String bir degerdir ve hangi klasör icerisinde arama yapacaginizi belirtir. // Liste : Arama sonucunda buldugu dosyalarin listesinin saklanacagi TStringList türünde bir degerdir. // AltKlasor : Boolean tipindedir ve arama yaparken alt klasörlerede bakip bakmayacagini belirtir. // Unit DosyaListesi; Interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = Class(TForm) Edit1: TEdit; Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); Private { Private declarations } Public { Public declarations } End; Var Form1 : TForm1; Liste : TStringList; implementation {$R *.DFM} Function TaksimKontrol(Const Yol,S : String) : String; Begin If AnsiLastChar(Yol)^<>'\' Then Result:=Yol+'\'+S Else Result:=Yol+S; End; Procedure DosyaListesiniAl(Const KlasorAdi : String; DosyaListesi : TStringList; AltKlasorVarmi : Boolean); Var AramaBilgisi : TSearchRec; Sonuc : Integer; Begin Sonuc:=FindFirst(PChar(TaksimKontrol(KlasorAdi,'*.*')),0,AramaBilgisi); While Sonuc=0 Do Begin DosyaListesi.Add(TaksimKontrol(KlasorAdi,AramaBilgisi.Name)); Sonuc:=FindNext(AramaBilgisi); End; FindClose(AramaBilgisi); If AltKlasorVarmi Then Begin Sonuc:=FindFirst(PChar(TaksimKontrol(KlasorAdi,'*.*')),faDirectory,AramaBilgisi); While Sonuc=0 Do Begin If ((AramaBilgisi.Attr And faDirectory)<>0) Then Begin If ((AramaBilgisi.Name<>'.') And (AramaBilgisi.Name<>'..')) Then DosyaListesiniAl(TaksimKontrol(KlasorAdi,AramaBilgisi.Name),DosyaListesi,AltKlasorVarmi); End; Sonuc:=FindNext(AramaBilgisi) End; FindClose(AramaBilgisi); End; End; Procedure TForm1.Button1Click(Sender: TObject); Begin Liste:=TStringList.Create; Try DosyaListesiniAl('C:\',Liste,True); Memo1.Lines.Text:=Liste.Text; Finally Liste.Free; End; End; End. // // Kolay gelsin. // // Hakan HAMURCU // // hamurcu@delphiturk.com //