![]() |
mp3 files auch aus allen unterverzeichnissen einbeziehen
halloo
ich arbeite im moment an einem mp3Player, und da soll man natürlich mp3 files zum archiv hinzufügen können, was ich auch kann, jedoch etwas unbequem. mit 'BrowseDialog' kann man den ordner wählen, aber es werden jeweils nur diejenigen dateien hinzugefügt, die sich direkt in diesem ordner befinden. meine ca. 22 GB musik befindet sich aber auch in unterordner: meine musik\buchstabe\interpret\track.mp3 -> meine musik\j\jeanette\enjoy.mp3 das ist ziemlich mühsam, alle tracks in mein archiv abzuspeichern... :pale: :?: meine frage: ist es möglich, einen ordner(meine musik) zu markieren, und es werden AUCH(nicht NUR!) alle untergeordneten files in einer listbox aufgelistet?? :?: ACHTUNG: ich muss auch zu jedem track den pfad haben!! hier mein code, der vielleicht nützlich ist:
Delphi-Quellcode:
procedure TAdd.hinzufuegenClick(Sender: TObject);
var mp3Folder : string; begin mp3Folder := BrowseDialog('Wähle einen Ordner mit mp3-Dateien', BIF_RETURNONLYFSDIRS); if mp3Folder = '' then Exit; statictext1.Caption := mp3Folder; FillMP3FileList(mp3Folder, listbox1.Items); //informationen aus mp3 files einlesen timer1.Enabled := true; //informationen in die datenbank eintragen end; BrowseDialog:
Delphi-Quellcode:
function BrowseDialog(const Title: string; const Flag: integer): string;
var lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin Result:=''; FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); with BrowseInfo do begin hwndOwner := Application.Handle; pszDisplayName := @DisplayName; lpszTitle := PChar(Title); ulFlags := Flag; lpfn := BrowseDialogCallBack; end; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); Result := IncludeTrailingBackslash(TempPath); GlobalFreePtr(lpItemID); end; end; ACHTUNG: ich bin nicht sehr gut im programmieren, das was ihr oben seht, ist praktisch alles aus dem internet!! vielen dank schon im voraus... |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Zitat:
Was du brauchst ist ein rekursiver Dateisuche-Algorithmus. Wenn man also auf einen Ordner stößt, in diesen hinabsteigen und dort alle Dateien suchen. Sollte dieser Ordner wiederum Unterordner enthalten, wieder rein und dort alle Dateien suchen. Und ![]() |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Zitat:
noch ein tipp: wenn du noch nicht gut bist (wie du selber schreibst) solltest du event. etwas langsamer an die sache rangehen.... Zitat:
statt diesem BrowseDialog könntest du erstmal mit dem JvSelectDirectory anfangen, aus Der Jvcl... dann ist es übersichtlicher und einfacher |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Zitat:
|
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Hi wenn du wirklich noch nicht so viel Ahnung hast, versuch es doch einfach mal mit der FindFile Komponente. Die geistert hier in der DP rum und ist für dein Problem perfekt geeignet!
|
DP-Maintenance
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Falsche Sparte - CodeLibrary = Tippsammlung |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
erstens mal vielen dank, ich werde alles einmal ausprobieren...
und zweitens habe ich die festplatte von einem kollegen geliehen, darum kann ich nichts dafür dass es so geordnet ist und solche musik enthält :!: |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Zitat:
|
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
das mit dem findallfiles klingt sehr gut, finde ich doch wie gesagt, ich bin noch ein anfänger und darum habe ich ein problem damit... :oops:
kann man denn das nicht so aufrufen :?: :
Delphi-Quellcode:
procedure TAdd.Button6Click(Sender: TObject);
begin findallfiles(listbox1.items.strings, label2.Caption, '*.mp3', true); end; übrigens, ich habe delphi 7, falls das noch nützlich sein könnte... |
Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
Doch, eigentlich schon. Was gibt er denn für 'ne Fehlermeldung aus?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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