![]() |
Ordnerinhalt auslesen
Hi,
auch nach längerem Suchen bin ich leider auf keine Lösung meines Problems gestoßen. Ich möchte mein Programm eine Liste erstellen lassen von den (Film-)Dateien die sich in einem Ordner befinden. Nun habe ich des Öfteren schon gelesen, das es mit FindFirst usw gehen soll. Als ich das aber ausprobiert habe, so wie es in der Hilfe steht, kam der Fehler "Ungültiges Zeichen in ..." ich habe alles so gemacht wie in der Hilfe beschrieben (natürlich für mein Prog umgeschrieben) und es geht nicht. Mit diesem ListView oder wie das heißt, habe ich noch nie gearbeitet und wöllte es auch nicht so gern damit machen. Also bitte ich mal wieder erfahrenere Programmierer mir zu helfen und mir ein Lehrer zu sein. :) |
Re: Ordnerinhalt auslesen
Vielleicht hilft Dir folgender Eintrag der Codelibrary weiter:
![]() |
Re: Ordnerinhalt auslesen
Oh mein Gott!
Na da hab ich ja mal wieder mist gebaut... Gesucht und gedacht nix gefunden zu haben... Tut mir leid das ich nicht richtig gesucht habe... aber herzlichen dank für den Hinweis! |
Re: Ordnerinhalt auslesen
Jetzt muss ich doch noch einmal melden. Ich habe mir das Beispiel hier
Delphi-Quellcode:
angeschaut.
procedure FindAllFiles(const FileList: tstrings;RootFolder: string; Maske: array of string; Recurse: Boolean = True);
var SR: TSearchRec; i : integer; begin RootFolder := IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(FileList, RootFolder + SR.Name, Maske, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; i := 0; repeat begin if FindFirst(RootFolder + '*' + Maske[i], faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin // --> eine Datei wurde gefunden // der Dateiname steht in SR.Name // der vollständige Dateiname (inkl. Pfadangabe) ist // RootFolder + SR.Name FileList.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; i := i + 1; end until i = high(maske) + 1; end; Da müsste ich ja in der ButtonClick-Procedure FindAllFiles([Hier muss ja eine Stringlist mitgegeben werden oder?],[Verzeichnis ist klar],[Eine Maske muss her],True) aufrufen. Wenn ich das so mache, bekomme ich aber eine fehlermeldung, das eine ungültige Pointeroperation vorhanden ist. Die meldung bekomme ich erst bei laufender exe. wenn ich die exe ohne delphi starte bkomme ich auch nur diese meldung. woran liegt das? [EDIT] Hab nach einigem Probieren meine Hänger selbst gelöst. Also trotzdem Danke für die Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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