![]() |
Laufwerkinhalt in ein treeview?
Hi coder :-D
ich habe folgendes Problemchen: ich komme nicht drauf wie ich es schaffen könnte die Struktur oder den Inhalt zB meines C: Laufwerks in ein Treeview auszugeben. Ich möchte nähmlich ordner, unterordner und die dateien sehen können. Dazu habe ich schon diesen Thread gefunden: ![]() |
Re: Laufwerkinhalt in ein treeview?
einfach ein laufwerk rekuriv durchsuchen. jedes mal wenn der Ordner aufgerufen wird ein neues Subitem aufrufen. und für jede Datei ein Item erstellen.
lg el |
Re: Laufwerkinhalt in ein treeview?
Hm... laufwerk durchsuchen klingt nicht gerade easy und mit aussortieren..
ich habe ![]()
Delphi-Quellcode:
procedure FindAllFiles(FileList: TStrings; RootFolder: string; Mask: string ='*'; Recurse: Boolean = True; AddFolderNames: Boolean = False; IgnoreMaskAtFolderNames: Boolean = True);
procedure LFindAllFiles(AParentFolder: String); var LSearchRec: TSearchRec; begin if FindFirst(AParentFolder + '*', faAnyFile, LSearchRec) = 0 then begin repeat if (LSearchRec.Name <> '.') and (LSearchRec.Name <> '..') then begin if LSearchRec.Attr and faDirectory = faDirectory then begin if AddFolderNames and (IgnoreMaskAtFolderNames or Like(AnsiLowerCase(LSearchRec.Name), Mask)) then FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(True)); if Recurse then LFindAllFiles(AParentFolder + LSearchRec.Name + '\'); end else if Like(AnsiLowerCase(LSearchRec.Name), Mask) then FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(False)); end; until FindNext(LSearchRec) <> 0; FindClose(LSearchRec); end; end; begin Mask := AnsiLowerCase(Mask); LFindAllFiles(IncludeTrailingPathDelimiter(RootFolder)); end; |
Re: Laufwerkinhalt in ein treeview?
Hallo,
du könntest in deinem Programm auch einfach die Komponente TShellTreeView verwenden - einfach von der Palettenseite "Beispiele" auf deine Form ziehen und "C:\" als Root eintragen. Dann geht alles wie von selbst. Grüße vom marabu |
Re: Laufwerkinhalt in ein treeview?
Huyyy, coole Sache, diese Komponente kannte ich noch gar nicht :thumb:
Jetzt nur noch eine Sache: wie kann ich das was angezeigt wird abspeichern, sodass ich es auf einem anderen PC sehen kann (wie es auf dem anderen war)? ist das möglich? |
Re: Laufwerkinhalt in ein treeview?
nochmal wegen dem nach dateien "scanen" der code sollte auch gehn:
Delphi-Quellcode:
Nur der vollständigkeit halber ;)
var
count:integer .... procedure GetAllFiles(mask: string); var search: TSearchRec; directory: string; begin directory := ExtractFilePath(mask); //alle dateien suchen if FindFirst(mask, $23, search) = 0 then begin repeat // add the files to the listbox Form1.ListBox1.Items.Add(directory + search.Name); Inc(Count); until FindNext(search) <> 0; end; //Unterverzeichnisse if FindFirst(directory + '*.*', faDirectory, search) = 0 then begin repeat if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask)); until FindNext(search) <> 0; FindClose(search); end; end; procedure TForm1.Button1Click(Sender: TObject); var directory: string; mask: string; begin Count := 0; Listbox1.Items.Clear; directory := 'C:\temp\'; //verzeichnis, ab dem er suchen soll mask := '*.*'; Screen.Cursor := crHourGlass; try GetAllFiles(directory + mask); finally Screen.Cursor := crDefault; end; ShowMessage(IntToStr(Count) + ' Files found'); end; MfG - Ghost007 |
Re: Laufwerkinhalt in ein treeview?
Hey das ist cool! und ich kanns auch nachvollziehen :zwinker:
Finde ich guuut, da wird die struktur nähmlich auch klar mit den unterordnern! fetten THANKS :cheers: jetzt kanns weitergehen :coder: :zwinker: |
Re: Laufwerkinhalt in ein treeview?
freut mich dir geholfen zu haben =)
viel spaß und glück ;) MfG - Ghost |
Re: Laufwerkinhalt in ein treeview?
Yoooooo, ich bräuchte da noch einen kleinen tipp zur Erweiterung oder Änderung :?
nähmlich: Was müsste ich da jetzt ändern wenn ich die versteckten dateien / ordner mit aufgelistet haben will? nochmal danke im voraus :) |
Re: Laufwerkinhalt in ein treeview?
Hallo,
hier etwas Hilfe zur Selbsthilfe: Die Delphi Online Hilfe zeigt dir für die Funktion FindFirst() zwei Dinge - welche Attribute du für die Suche verwenden kannst und wo (Unit SysUtils) du deren Deklaration findest. Beim Suchen nach Dateien verwendest du $23 als Attribut-Kombination, was soviel wie (faArchive or faHidden or faReadOnly) bedeutet. Welche Änderung du bei den Verzeichnissen noch machen musst, das findest du jetzt bestimmt selbst heraus - oder? Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz