Danke, das mit der Faq habe ich leider nicht gesehen.
Dennoch habe ich zwei Fragen und zwar sagt er bei FindClose, dass es incompatible Typen: Cardinal und TSearchRec seien. Vorher habe ich diesen Code in einem leeren Formular gehabt, stoppte er nicht.
Wenn ich findclose rausnehme funktioniert es trotzdem noch.
2. Wenn ich in einen Ordner gehe, in dem noch weitere Ordner sind, so zeigt er die auch in der Listbox an
QuellCode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings); Var FindRec5: tSearchRec; Begin // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist // dann raus If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then Exit;
// Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen If aPath[Length (aPath)] <> '\' Then aPath := aPath + '\';
// Im aktuellen Verzeichnis nach der Datei suchen If FindFirst (aPath + aFindMask, faAnyFile, FindRec5) = 0 Then Repeat If (FindRec5.Name <> '.') and (FindRec5.Name <> '..') Then // ...Ergebnis in die Stringlist einfügen // aResult.Clear; aResult.Add (FindRec5.Name); Until FindNext (FindRec5) <> 0; // FindClose(FindRec5);
// Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus If Not aWithSub Then Exit;
// In Unterverzeichnissen weiter suchen If FindFirst (aPath + '*.*', faAnyFile, FindRec5) = 0 Then Repeat If (FindRec5.Name <> '.') and (FindRec5.Name <> '..') Then // Feststellen, ob es sich um ein Verzeichnis handelt If Boolean (FindRec5.Attr and faDirectory) Then // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion) FindFiles (aPath + FindRec5.Name, aFindMask, aWithSub, aResult); Until FindNext (FindRec5) <> 0;
// FindClose (FindRec5); End;
procedure TFrameForm.ShellTreeView1DblClick(Sender: TObject); begin browserlistbox.Clear; FindFiles (ShellTreeView1.Path, '*.*', False, browserlistbox.Items); end; |
.::Wissen ist Macht, nichts wissen macht nichts::.