AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mehrere Dateien gleichzeitig umbenennen. Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Dateien gleichzeitig umbenennen. Wie?

Ein Thema von DRPEnc · begonnen am 4. Mär 2004 · letzter Beitrag vom 4. Mär 2004
Antwort Antwort
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#1

Mehrere Dateien gleichzeitig umbenennen. Wie?

  Alt 4. Mär 2004, 13:39
K, ich hab diesen Code gefunden:

Delphi-Quellcode:
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;
Kann man diesen so umschreiben, dass man gleich mehrere Dateien umbenennt?

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;
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Mehrere Dateien gleichzeitig umbenennen. Wie?

  Alt 4. Mär 2004, 13:43
Hi!

Du musst mit einer For-Schleife alle Dateien, die du umbenennen willst, durchlaufen.

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: Mehrere Dateien gleichzeitig umbenennen. Wie?

  Alt 4. Mär 2004, 13:50
Servus,

Du willst also mehrere Dateien auf einen Schlag umbenennen, wenn ich Dich richtig versteh

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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: Mehrere Dateien gleichzeitig umbenennen. Wie?

  Alt 4. Mär 2004, 14:00
Hi!

So wie ich das verstehe, will er nur Sonderzeichen und Leerzeichen entfernen.

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Mehrere Dateien gleichzeitig umbenennen. Wie?

  Alt 4. Mär 2004, 14:18
Aso wer lesen kann is im Vorteil

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

So far,
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz