Zitat von
Hawkeye219:
Natürlich funktioniert es - wenn die Dateien im aktuellen Verzeichnis liegen. [...]
habe aber nicht das aktuelle verzeichnis geändert.. lediglich habe ich der var
dir einen wert zugewiesen
hier mal die ganze prozedur ^^
Delphi-Quellcode:
var
item: TListColumn;
tracks: TListItem;
sr: TSearchRec;
i: integer;
lArtist, lTitle, lAlbum, lYear, lComment, lTrackNo: string;
dir: string;
fn: string;
begin
listview1.ViewStyle := vsReport;
listview1.Align := alClient;
lArtist := '';
lTitle := '';
lAlbum := '';
lYear := '';
lComment := '';
lTrackNo := '';
for i := low(lvColumns) to high(lvColumns) do begin
item := listview1.Columns.Add;
item.Caption := lvColumns[i];
item.AutoSize := true;
end;
if paramstr(1) = '' then
with TOpenDialog.Create(self) do begin
if execute then
dir := ExtractFilePath(Filename);
end;
if dir <> '' then
if FindFirst(dir+'\*.mp3', faAnyFile, sr) = 0 then begin
repeat
if ReadID3v2Tag(sr.Name, lTitle, lArtist, lAlbum, lYear, lComment, lTrackNo) then begin
tracks := listview1.Items.Add;
with tracks do begin
if lArtist <> '' then begin
caption := lArtist;
with subitems do begin
add(lTitle);
add(lAlbum);
add(lYear);
if lComment = '' then
add('-')
else
add(lComment);
add(lTrackNo);
end;
fn := '';
if lTrackNo <> '' then
fn := '['+lTrackNo+'] ';
if lArtist <> '' then
fn := fn + trim(lArtist);
if lTitle <> '' then
fn := fn+' - '+trimleft(lTitle);
RenameFile(sr.name, trim(fn+extractfileext(sr.name)))
end;
end;
end;
until
FindNext(sr) <> 0;
end;
Mit freundlichen Grüßen