Dosya Ve Klasör'leri Listelemek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Dosya Ve Klasör'leri Listelemek
arkadaşlar iyi akşamlar. ben bir klasörün içindeki dosyaları ve diğer klasörleri listelemek istiyorum. buldum kodların hepsi alt klasörleride listeliyor. elinde bununla ilgili kod olan varmı
teşekkürler.
teşekkürler.
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Kod: Tümünü seç
filelistbox1.Directory:='c:\temp';
for say:=0 to filelistbox1.Items.Count-1 do
memo1.Lines.Add(filelistbox1.Items.Strings[say]);
memo1.Lines.SaveToFile('liste.txt');
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Senin ilacın bu kodu artık listbox'ına göre ayarlarsın...kod belirtilen klasör içindeki dosya ve alt klasörlerdeki dosyalarda arama yapar...
Kod: Tümünü seç
Procedure FindFiles(const Path, Mask: string; IncludeSubDir: boolean; Out List:TStringList);
var
FindResult: integer;
SearchRec : TSearchRec;
begin
FindResult := FindFirst(Path + Mask, faAnyFile - faDirectory, SearchRec);
while FindResult = 0 do
begin
{ do whatever you'd like to do with the files found }
List.Add(Path + SearchRec.Name);
FindResult := FindNext(SearchRec);
end;
{ free memory }
FindClose(SearchRec);
if not IncludeSubDir then
Exit;
FindResult := FindFirst(Path + '*.*', faDirectory, SearchRec);
while FindResult = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
FindFiles (Path + SearchRec.Name + '\', Mask, TRUE,List);
FindResult := FindNext(SearchRec);
end;
{ free memory }
FindClose(SearchRec);
end;
//Kullanımı
Var
i:Integer;
liste:TStringList;
begin
liste:=TStringList.Create;
FindFiles(GetCurrentDir+'\','*.Dat',False,liste);
Listbox.Clear;
Listbox.items.addstrings(liste);
liste.Free;
end;
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
iyide sen bu kodu hiç denedin mi? Zaten senin istediğini yapıyor...orda IncludeSubDir: boolean parametresini false yaparsın alt klasörler listelenmez arama denilen şey nedir;dosyaların bulunması ve listelenmesi değil mi? bu kodda onu yapıyor nasıl yapıyor dersen denersen görürsün...bak orda List:TStringList yazıyor parametre olarak oraya bir stringlist tanımlayacaksın sonra listbox1.items.addstrings(list) diyeceksin sonuç gelecek listbox'ına...
Şimdi farkkettim zaten örneğide vermişim koddda....
Şimdi farkkettim zaten örneğide vermişim koddda....
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
fadirectory fahidden gibi değişkenleri helpten incele rahatlıkla yapman gerek. yukardaki örnekte işin mantğı zaten var. recursive prosedure kullanımın en güzel örneği senin sorun zaten.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
ben bir türlü listeleyemedim şu klasörleri :S
Kod: Tümünü seç
procedure FindFiles(const Path, Mask: string; IncludeSubDir: boolean; Out List:TStringList);
var
FindResult: integer;
SearchRec : TSearchRec;
begin
FindResult := FindFirst(Path + Mask, faAnyFile - faDirectory, SearchRec);
while FindResult = 0 do
begin
{ do whatever you'd like to do with the files found }
List.Add(Path + SearchRec.Name);
FindResult := FindNext(SearchRec);
end;
{ free memory }
FindClose(SearchRec);
if not IncludeSubDir then
Exit;
FindResult := FindFirst(Path + '*.*', faDirectory, SearchRec);
while FindResult = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
FindFiles (Path + SearchRec.Name + '\', Mask, True,List);
FindResult := FindNext(SearchRec);
end;
{ free memory }
FindClose(SearchRec);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
liste:=TStringList.Create;
FindFiles('C:\','*',False,liste);
ListBox1.Items.AddStrings(liste);
liste.Free;
end;
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim:
arkadaşlar kodlar normal çalışıyor; ancak benim merak ettiğim konu şu: ben burada bulduğum dosyaları bir bileşene aktarırken ( örneğin: listbox) sadece dosya isimlerini nasıl yazdırabilirim. yani bütün yolu istemiyorum. sadece bulunan dosyaların isimlerini yazdırmak istiyorum
Fethiye den herkese sevgiler ...
X))@:>
X))@:>
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim: