Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mp3 files auch aus allen unterverzeichnissen einbeziehen (https://www.delphipraxis.net/33803-mp3-files-auch-aus-allen-unterverzeichnissen-einbeziehen.html)

100nF 12. Nov 2004 21:06


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...

tommie-lie 12. Nov 2004 21:22

Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
 
Zitat:

Zitat von urbanbruhin
meine musik\buchstabe\interpret\track.mp3 -> meine musik\j\jeanette\enjoy.mp3

Wer so Musik hört, dem helfe ich nicht! :mrgreen:

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 hier gibt's den passenden Code dazu ;-)

glkgereon 12. Nov 2004 21:29

Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
 
Zitat:

Zitat:

meine musik\buchstabe\interpret\track.mp3 -> meine musik\j\jeanette\enjoy.mp3
Wer so Musik hört, dem helfe ich nicht!
wer seine mp3s so sortiert......

noch ein tipp:

wenn du noch nicht gut bist (wie du selber schreibst) solltest du event. etwas langsamer an die sache rangehen....
Zitat:

das was ihr oben seht, ist praktisch alles aus dem internet!!
ist auch keine gute vorraussetzung...

statt diesem BrowseDialog könntest du erstmal mit dem JvSelectDirectory anfangen, aus Der Jvcl...

dann ist es übersichtlicher und einfacher

tommie-lie 12. Nov 2004 21:53

Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
 
Zitat:

Zitat von glkgereon
wer seine mp3s so sortiert......

Stimmt, dem erst recht nicht :mrgreen:

MisterNiceGuy 12. Nov 2004 22:17

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 12. Nov 2004 22:27

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

100nF 13. Nov 2004 09:18

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 :!:

tommie-lie 13. Nov 2004 09:39

Re: mp3 files auch aus allen unterverzeichnissen einbeziehen
 
Zitat:

Zitat von urbanbruhin
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 :!:

Dein Ironiedetektor ist kaputt :mrgreen:

100nF 13. Nov 2004 09:43

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...

tommie-lie 13. Nov 2004 10:16

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.
Seite 1 von 2  1 2      

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