Klasördeki dosya listesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Klasördeki dosya listesi

Mesaj gönderen serbek_tr »

S.A. arakdaşlar;
Kontrol etmem gereken bir dosya listesi mevcut yalnız bu dosyalar zamanla artış gösteriyor, bu nedenle kontrol etme zorlaşıyor. Klasördeki listeyi bir file listboxa alıyorum ve dosyaları kontrol ediyorum. Listenin Filelistbox a yüklenme sürersi bile bir kayıp sayılır çünkü dosya sayısı gitikçe artacak ve ben bu listeyi her defasında taramak zorunda kalacağım. Listeyi hafifletmek için hiç birşekilde dosya silme yada yer değiştirme lüksüm yok. Bana pratik olabilecek bir yol göstermenzi rica ediyorum. Mesela en son kontrol ettiğim dosya itibari ile filelistboxa yükleme imkanım varmı yada ona benzer bir yol mümkün mertebe zaman kaybı olmadan sadece ihtiyacım olanı alıp kontrol etmek istiyorum.
Saygılar.
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
sineyk
Üye
Mesajlar: 4
Kayıt: 03 Oca 2008 12:51

Re: Klasördeki dosya listesi

Mesaj gönderen sineyk »

Ne yapmak istediğinizi tam anlayamamış olsam da şöyle bir kod işinizi görebilir/fikir verebilir sanırım.

Kod: Tümünü seç

procedure DosyaKontrol;
var
  EskiListe,YeniListe:TStringList;
  i:Integer;
  sr:TSearchRec;
  el:String;
begin
  el:='DosyaListesi.txt';
  EskiListe:=TStringList.Create;
  YeniListe:=TStringList.Create;
  if FileExists(el) then EskiListe.LoadFromFile(el);
  i:=FindFirst('*.*',faAnyFile-faDirectory,sr);
  while (i=0) do
  begin
    If EskiListe.IndexOf(sr.Name)=-1 then YeniListe.Add(sr.Name);
    i:=FindNext(sr);
  end;
  FindClose(sr);

  //Eski listede olmayan yeni dosyalar YeniListe içerisinde.
  if YeniListe.Count=0 then
     ShowMessage('Yeni dosya yok') else
     ShowMessage('Yeni dosyalar:'+#13+#13+YeniListe.Text);
  //Eski listeyi de güncelleyeceksek;
  EskiListe.AddStrings(YeniListe);
  EskiListe.SaveToFile(el);
  YeniListe.Free;
  EskiListe.Free;
end;
Kullanıcı avatarı
serbek_tr
Üye
Mesajlar: 362
Kayıt: 16 Ağu 2004 12:54

Re: Klasördeki dosya listesi

Mesaj gönderen serbek_tr »

Teşekkür ederim istediğim şeyi farklı bir mantık ile yapmışsın. İşe yarıyor ancak ben başka bir mantık kullandım çünkü dosya sayısı çok fazla olduğu için bu gibi karşılaştırmalar zaman kaybına sebep olur diye işe bu açıdan yaklaşmamıştım doğrusu, ama çalışıyor.

Benim yaptığım ise senin yaptığına banze ancak ancak ben senin mantığın üzerinden değerlendirecek olursak listeyi ilk okuduğum zaman dosya tarihi en büyük olanın dosya tarih bilgisini saklıyor ve listeyi tekrar kontrol ettiğim zaman kontrol edilenler arasında sakladığım tarihten daha büyük olan dosyaları yeni dosya olarak değerlendiriyorum. bunuda paylaşmak istedim tekrar teşekkür ederim.
Procedure Forum.Imza(Sender: TObject)
Begin
ShowMessage('Her türlü fikire, Her zaman açığım')
End;
Cevapla