Avatar billede Slettet bruger
20. juni 2002 - 16:58 Der er 8 kommentarer og
1 løsning

Lave liste af filer og mapper

Hvordan laver man en liste af filer og undermapper fx. i en mappe?

eks.:

/mappe1
fil1.txt
fil2.txt
/mappe2
fil3.txt

osv.
Hvordan gør man det?
Avatar billede zerohero Nybegynder
20. juni 2002 - 18:15 #1
Lav eksempelvis en løkke der tjekker for undermapper! Til det kan du eventuelt bruge en TDirectoryListBox... Vær sikker på at din TFileListBox og din TDirectoryListBox altid har samme sti, så skriv følgende i din TDirectoryListBox's OnChange event:

procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var
  i : integer;
  s : string;
begin
  FileListBox1.Directory := DirectoryListBox1.Directory;
  Caption := 'RodMappe : '+DirectoryListBox1.Items[DirectoryListBox1.ItemIndex];
  if DirectoryListBox1.ItemIndex < DirectoryListBox1.Items.Count then
  begin
    s := '';
    for i := 0 to DirectoryListBox1.Items.Count-DirectoryListBox1.ItemIndex-1 do
    if i > 0 then
    s := s+DirectoryListBox1.Items[DirectoryListBox1.ItemIndex+i]+', ';
    Caption := Caption+' UnderMapper: '+s
  end;
end;

I koden viser den, RodMappen (den mappe du er befinder dig i) og dernæst alle undermapper der tilhøre rodmappen, i din form's caption...

ZeroHero
Avatar billede Slettet bruger
20. juni 2002 - 18:38 #2
Jeg skal bruge f.eks.

INDEX AF /RODMAPPE
/mappe1
.fil1.txt
.fil2.txt
/mappe2
.fil3.txt

kan man ikke lave det - Det er nem'lig det jeg skal bruge
Avatar billede hermandsen Juniormester
20. juni 2002 - 23:39 #3
Der findes en god søge komponent ind på www.pythia.dk som er bygget ind i en Thread... Den burde kunne gøre det du søger efter...
Avatar billede Slettet bruger
21. juni 2002 - 11:55 #4
Kan du ikke komme med et eksempel på det ?
Avatar billede hermandsen Juniormester
21. juni 2002 - 12:03 #5
På hvordan man bruger søgningen?

Sæt komponentet ind på din form, sæt de forskellige properties og skriv nogle events til OnDirectoryFound og OnFileFound... Den er ret simpel at bruge! :)
Avatar billede Slettet bruger
21. juni 2002 - 12:19 #6
husk! jeg er en dum newbie...
Avatar billede hermandsen Juniormester
21. juni 2002 - 12:38 #7
Sæt en knap, en ListBox og en FileSearch-komponent på din form, dobbeltklik på knappen og skriv følgende kode:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with FileSearch1 do
  begin
    Root := 'C:\Dokumenter'; //Roden i vores fil-søgning er C:\Dokumenter
    Filter := '*.*'; //Den skal finde ALLE filer
    Recursiv := True; //Den skal også søge i undermapper
    Execute; //Starter søgningen
  end;
  Caption := 'Searching...';
end;

Så skal vi bruge noget kode når der er fundet en fil:

procedure TForm1.FileSearchFileFound(Sender: TObject; Filename: TFileName);
begin
  ListBox1.Items.Add(Filename);
end;

Lidt mere kode når der er fundet et bibliotek:

procedure TForm1.FileSearchDirectoryFound(Sender: TObject;
  Directory: String);
begin
  ListBox1.Items.Add('Dir: ' + Directory);
end;

Og til sidst når det hele er fundet:

procedure TForm1.FileSearchFinish(Sender: TObject; Breaked: Boolean);
begin
  Caption := 'Done!';
end;

Så skal du bare lave lidt streng-gymnastik for at få det til at passe til det du skal bruge det til.. God fornøjelse! ;)
Avatar billede Slettet bruger
21. juni 2002 - 16:42 #8
Mange tak for svaret ! Det hele virker nu!
Avatar billede hermandsen Juniormester
21. juni 2002 - 16:43 #9
Velbekomme da!

Takker for point! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester