alt klasörleri görme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

alt klasörleri görme

Mesaj gönderen guduknecmi »

selamlar
mp3 player yapmaya çalışıyorum.shelltreeview ile dizin seçip filelistbox içine mp3 leri atıyorum.

Kod: Tümünü seç

filelistbox1.directory:=shelltreview1.path;
Yalnız bu şekilde direk albümü seçmek gerekiyor.Albumlerin bulunduğu üst dizin seçildiğinde tüm alt klasörlerin dosyalarını da filelistbox içine almak istiyorum.Yani mp3 klasörü seçildiğinde sarkı.mp3 de listeye alınsın.
dizin: mp3\albüm1\sarkı.mp3

Bu olayı nasıl yaparım.Yardımcı olursanız sevinirim.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Bunun için aşağıdaki gibi br yöntem izleyebilirsin

Kod: Tümünü seç

Procedure DosyaAra(const Yol, Tur: string; AltDizin: boolean; Out List:TStringList);
var
  AramaSonucu: integer;
  Arama : TSearchRec;
begin
  AramaSonucu := FindFirst(Yol + Tur, faAnyFile - faDirectory, arama);
  while AramaSonucu = 0 do
  begin
    List.Add(Yol + Arama.Name); // Dosya ismi yoluyla birlikte
//List.Add(Arama.Name)  sadece dosya ismi
    AramaSonucu := FindNext(Arama);
  end;
  FindClose(Arama);
  if not AltDizin then Exit;
  AramaSonucu := FindFirst(Yol + '*.*', faDirectory, Arama);
  while AramaSonucu = 0 do
  begin
    if (Arama.Name <> '.') and (Arama.Name <> '..') then
        DosyaAra (Yol + Arama.Name + '\', Tur, TRUE,List);
    AramaSonucu := FindNext(Arama);
  end;
  FindClose(Arama);
end;
kullanımı

Kod: Tümünü seç

Var
i:Integer;
liste:TStringList;
begin
    liste:=TStringList.Create;
    DosyaAra(ShellTreeView1.Path+'\','*.Mp3',True,liste);
    Memo1.Lines.Clear;
    Memo1.Lines:=Liste;
    liste.Free;
end;
açıkcası ben hiç bir yerde kullanmadım ama göndermeden önce denedim zamanın birinde biryerden bulup eklemişim arşivime belki işini görür
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
guduknecmi
Üye
Mesajlar: 99
Kayıt: 08 Nis 2004 02:18
İletişim:

Mesaj gönderen guduknecmi »

selamlar
verdiğin kod çalışıyor.Teşekkürler.
memo yerine filelistbox içine aldım listeyi.
Listeye şu şekilde aldığımda mp3 listesi çalınıyor.

Kod: Tümünü seç

List.Add(Yol + Arama.Name); // Dosya ismi yoluyla birlikte 
Ama şu şekilde alırsam çalıdıramadım bir türlü.

Kod: Tümünü seç

List.Add(Arama.Name)  sadece dosya ismi 
Bakalım biraz uğraşayım.Bu arada bilen varsa açıklarsa daha iyi olur.
Cevapla