Hallo,
ich hoffe ihr könnt mir helfen.Ich habe ein Programm geschrieben, dass über einen ID3 Tag die Datei umbenennt. In meinen Fall wird die Datei in den Titel umbenannt.Dafür werden die Dateien in eine Listbox hinzugefügt und dann der Reihe nach abgearbeitet.Das funktioniert bei einer Datei. Wenn ich aber mehrere Dateien hinzufüge kommt der Fehler der Klasse EFOpenError. Das System kann den Pfad
des alten (noch nicht umbenannten) Dateinamen nicht mehr finden.
Hier ist mein Quelltext:
Delphi-Quellcode:
procedure TfrmMain.Button3Click(Sender: TObject);
var
I: integer;
F: TextFile;
begin
OpenDialog1.Options := [ofAllowMultiSelect];
OpenDialog1.Filter := 'MP3Dateien (*.mp3)|*.mp3|Alle Dateien(*.*)|*.*';
OpenDialog1.FilterIndex := 2;
if OpenDialog1.Execute then
with OpenDialog1.Files do
for I := 0 to Count - 1 do
begin
ListBox1.Items.add(OpenDialog1.Files.Strings[I]);
with readID3Tag(OpenDialog1.FileName) do
begin
LlbID.Caption := 'ID: ' + ID;
LlbTitel.Caption := Titel;
LlbArtist.Caption := 'Artist: ' + Artist;
LlbAlbum.Caption := 'Album: ' + Album;
LlbYear.Caption := 'Year: ' + Year;
LlbComment.Caption := 'Comment: ' + Comment;
SaveDialog1.Title := 'Umbenennen zu';
SaveDialog1.FileName:=LlbTitel.Caption ;
AssignFile(f, OpenDialog1.FileName);
Label1.Caption:='Umbenennen ' + OpenDialog1.FileName +
' zu ' + SaveDialog1.FileName+'.'+ SaveDialog1.DefaultExt;
Rename(f, SaveDialog1.FileName+'.mp3');
Es wäre gut, wenn ich wüsste wie die Listbox die abgearbeiteten Einträge löscht und zum nächsten Eintrag springt.
Vielen Dank