Arkadaşlar merhaba forumda ve googlede arama yaptım ama bulamadım.
Yapmak istediğim şu.Bir dizin içindeki JPG dosyalarını listeletmek istiiyorum.Aslında nihai dizin içindeki dosyaları listeletiyorum ancak ana dizin içindeki bütün dosyaları listeletmek istiyoum.
Örnek ermek gerekirse:
Ana dizin:
C:\Klasor1
Bu klasörün içinde jpeg dosyaları var.
Sonra bu klasörün içinde
C:\Klasor1\Klasor2
C:\Klasor1\Klasor3
C:\Klasor1\Klasor4
C:\Klasor1\Klasor5
C:\Klasor1\Klasor6
..........................
..........................
var.Ve bu her klasörün içinde de JPG dosyaları var.
Bu klasörlerin içinde gene JPG barındıran klasörler olabilir.
Benim yapmak istediğim bu ana klasörün tüm alt klasörleride dahil olmak üzere içinde ne kadar JPG dosyası var ise hepsini dosya yolları ile bir memo içine listelemek istiyorum.
Tek tek kontrol ederek her klasör için yap diyebilirsiniz belki ama bu dinamik bir yapı ve an klasörün içinde ne kadar alt klasör olacağı belli değil.
Windowsta arama yapıyoruz nasıl *.JPG ile bize aradığımız dizinin altına nerede ne varsa çıkarıyor.Yapmak istediğimde onun gibi bir şey.
Yardımlarınızı bekliyorum.
Şimdiden teşekküler...
Bir dizindeki tüm dosyaları listelemek(alt dizinler dahil)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Bir dizindeki tüm dosyaları listelemek(alt dizinler dahi
Kod: Tümünü seç
function DosyaListele(KlasorAdi:String;const Liste:TStrings;const Kriter:String='*.*'):Integer;
procedure DosyaTara(const Yol:String);
var Ara:TSearchRec;
begin
if FindFirst(Yol+Kriter,faAnyFile,Ara)=0 then repeat
if Ara.Attr and faDirectory = 0 then
Liste.Add(Yol+Ara.Name);
until FindNext(Ara)<>0;
FindClose(Ara);
if FindFirst(Yol+'*.*',faDirectory,Ara)=0 then repeat //daha alt klasörleri tara
if (Ara.Name<>'.') and (Ara.Name<>'..') and (Ara.Attr and faDirectory = faDirectory) then
DosyaTara(Yol+Ara.Name+'\');
until FindNext(Ara)<>0;
FindClose(Ara);
end;
begin
Liste.Clear;
if (KlasorAdi<>'') and (KlasorAdi[Length(KlasorAdi)]<>'\') then KlasorAdi:=KlasorAdi+'\';
DosyaTara(KlasorAdi);
Result:=Liste.Count;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DosyaListele('c:\KlasorAd',ListBox1.Items,'*.jpg');
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Bir dizindeki tüm dosyaları listelemek(alt dizinler dahi
Çok teşekkürler....