![]() |
Mehrere Dateien gleichzeitig umbenennen. Wie?
K, ich hab diesen Code gefunden:
Delphi-Quellcode:
Kann man diesen so umschreiben, dass man gleich mehrere Dateien umbenennt?
var
f : file; begin OpenDialog2.Title := 'Choose a file... '; if OpenDialog2.Execute then begin SaveDialog1.Title := 'Rename to...'; if SaveDialog1.Execute then begin AssignFile(f, OpenDialog2.FileName); Rename(f, SaveDialog1.FileName); end; end; end; Der folgende Code öffnet ja mehrere Dateien. Diese Dateien haben meistens Leerzeichen und/oder Sonderzeichen wie - / im Namen. Beispiel: 01. Soundtrack - High Level.ogg Dies kann aber von einem commandline programm nicht bearbeitet werden. Ergo müssen die Leer- und Sonderzeichen raus. Nur wie...
Delphi-Quellcode:
var i,ii:Integer;
begin opendialog1.Options:=[ofAllowMultiSelect,ofEnableSizing]; //multiselect erlauben if not opendialog1.Execute then exit; begin if opendialog1.Files.Count>1 then //falls multiselect begin for ii:= 0 to opendialog1.Files.Count-1 do begin i:=listbox1.items.IndexOf(opendialog1.Files.Strings[ii]); if i<0 then //falls der Eintrag noch nicht existiert begin listbox1.Items.Append(opendialog1.Files.Strings[ii]); end; end; end; end; end; |
Re: Mehrere Dateien gleichzeitig umbenennen. Wie?
Hi!
Du musst mit einer For-Schleife alle Dateien, die du umbenennen willst, durchlaufen. Ciao fkerber |
Re: Mehrere Dateien gleichzeitig umbenennen. Wie?
Servus,
Du willst also mehrere Dateien auf einen Schlag umbenennen, wenn ich Dich richtig versteh :D Wie soll das genau aussehen? -Willst Du die Dateiendung alles Files ändern? -Sollen Die Files alle durchnummeriert werden (aus test.bmp, hallo.jpg wird neu1.bmp, neu2.jpg ..)? -Oder wie nu? Ich mein, schließlich können ja nicht 10 Dateien einen identischen Dateinamen haben ;) MfG Stephan |
Re: Mehrere Dateien gleichzeitig umbenennen. Wie?
Hi!
So wie ich das verstehe, will er nur Sonderzeichen und Leerzeichen entfernen. Ciao fkerber |
Re: Mehrere Dateien gleichzeitig umbenennen. Wie?
Aso :wall: wer lesen kann is im Vorteil :-D
Also, mein Vorschlag sieht ca. so aus:
Delphi-Quellcode:
FUNCTION myRenameFiles : Boolean;
VAR i, posSpace : Integer; newName : STRING; ok : Boolean; dlg : TOpenDialog; CONST CrLf = #13#10; BEGIN OK := TRUE; newName := ''; Dlg := TOpenDialog.Create(Application); Dlg.Options := openDlg.Options + [ofAllowMultiSelect]; // Öffnen-Dialog aufrufen IF openDlg.Execute THEN // Alle ausgewählten Dateien durchlaufen FOR i:=0 TO openDlg.Files.Count-1 DO BEGIN posSpace := 1; newName := openDlg.Files[i]; WHILE posSpace>0 DO BEGIN posSpace := Pos(' ',newName); // Leerzeichen suchen Delete(newName,posSpace,1); // Leerzeichen löschen END; // Jetzt wird die Datei umbenannt IF NOT RenameFile(openDlg.Files[i],newName) THEN BEGIN // Fehler beim umbenennen OK := FALSE; MessageDlg(openDlg.Files[i]+' kann nicht umbenannt werden.' + CrLf + Format('Möglicherweise existiert %s bereits!',[newName]), mtError,[mbOK],0); Break; END; { Fehlerhandling } END; { Schleife Dateinamen } //Aufräumen Dlg.Free; result := OK; END; { myRenameFiles } Könnte sogar funktionieren :mrgreen: So far, Stephan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 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