Einzelnen Beitrag anzeigen

100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

mp3 files auch aus allen unterverzeichnissen einbeziehen

  Alt 12. Nov 2004, 22:06
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...

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...
  Mit Zitat antworten Zitat