Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei Umbenennen (https://www.delphipraxis.net/110472-datei-umbenennen.html)

Gehstock 18. Mär 2008 14:54


Datei Umbenennen
 
Delphi-Quellcode:
Data : String;

RenameFile( ParamStr(i), ExtractFilePath(ParamStr(i)) + data + '.jpg' );
versuche ich so aber nix passiert

Fussball-Robby 18. Mär 2008 14:54

Re: Datei Umbenennen
 
welchen Wert hat i?

Gehstock 18. Mär 2008 14:56

Re: Datei Umbenennen
 
Delphi-Quellcode:
begin
  for I := 1 to ParamCount do
  begin
      RenameFile( ParamStr(i), ExtractFilePath(ParamStr(i)) + data + '.jpg' );

DeddyH 18. Mär 2008 14:56

Re: Datei Umbenennen
 
Meine Glaskugel ist leider etwas trübe. Existiert die Zieldatei evtl. schon? Hast Du Dir den Rückgabewert von RenameFile mal ausgeben lassen?

Fussball-Robby 18. Mär 2008 14:58

Re: Datei Umbenennen
 
Außerdem: Muss der Dateipfad nicht im ersten Parameter stehen, und im zweiten ausschließlich der neue DateiNAME?

Gehstock 18. Mär 2008 15:02

Re: Datei Umbenennen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Eigentlich müsste es doch so passen

Delphi-Quellcode:
writeln ('Data = '+data);
      writeln('');
      writeln('');
      writeln ('ParamStr = '+ParamStr(i));
      RenameFile( ParamStr(i), ExtractFilePath(ParamStr(i)) + data + '.jpg' );
      writeln('');
      writeln('');
      writeln ('Ausgabe = '+ ExtractFilePath(ParamStr(i)) + data + '.jpg');

DeddyH 18. Mär 2008 15:04

Re: Datei Umbenennen
 
Versuch es mal so:
Delphi-Quellcode:
begin
  for I := 1 to ParamCount do
  begin
      RenameFile( ParamStr(i), data + '.jpg' );

Fussball-Robby 18. Mär 2008 15:06

Re: Datei Umbenennen
 
Zitat:

Zitat von DeddyH
Hast Du Dir den Rückgabewert von RenameFile mal ausgeben lassen?


Gehstock 18. Mär 2008 15:07

Re: Datei Umbenennen
 
das selbe keine Änderung


Rückgabewert ist FALSE

war da nicht was mit Anführungszeichen setzen wenn Leerzeichen im Pfad

DeddyH 18. Mär 2008 15:12

Re: Datei Umbenennen
 
Rein logisch kann es ja nur so sein, dass eine Datei nur innerhalb desselben Verzeichnisses umbenannt werden kann, sonst wäre es ja ein Verschieben. Von daher denke ich, dass Robby Recht hat und der Pfad beim 2. Parameter wegfallen muss. Sonst versuch es mal mit MoveFile.

Fussball-Robby 18. Mär 2008 15:16

Re: Datei Umbenennen
 
Zitat:

Zitat von Gehstock
war da nicht was mit Anführungszeichen setzen wenn Leerzeichen im Pfad

Bei Delphi sind alle Strings in Anführungszeichen :wink:
Wenn FALSE zurückgegeben wird, wurde die Datei nicht umbenannt. Gibt es evtl schon eine Datei mit dem Namen oder hast du keine Schreibrechte für das Verzeichnis?

Mfg

Gehstock 18. Mär 2008 15:18

Re: Datei Umbenennen
 
alles negativ kanns mir nicht erklären

Fussball-Robby 18. Mär 2008 15:20

Re: Datei Umbenennen
 
Wie gesagt, der Dateipfad kommt NUR in den ersten Parameter:
Delphi-Quellcode:
RenameFile( ParamStr(i), data + '.jpg' );
Probier mal, obs so klappt

SirThornberry 18. Mär 2008 15:21

Re: Datei Umbenennen
 
welchen Wert hat data? hast du dir mal ausgeben lassen zu welchem namen du umbenennst?
wenn data leer ist würdes du, wenn die übergebenen dateien alle im gleichen ordner liegen, versuchen zum gleichen namen zu benennen. Und hast du mal mit FileExists geprüft ob die Quelldatei überhaupt existiert? Und hast du geschaut welche Werte in ParamStr(i) jeweils stehen?

DeddyH 18. Mär 2008 15:21

Re: Datei Umbenennen
 
Oder so (da gibt es wenigstens eine Fehlermeldung):
Delphi-Quellcode:
for I := 1 to ParamCount do
  begin
      if not MoveFile(PChar(ParamStr(i)),
                      PChar(ExtractFilePath(ParamStr(i)) + data + '.jpg')) then
        ShowMessage(SysErrorMessage(GetLastError));
  end;

Gehstock 18. Mär 2008 15:25

Re: Datei Umbenennen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nope


Zitat:

writeln ('Data = '+data);
writeln('');
writeln('');
writeln ('ParamStr = '+ParamStr(i));
writeln ('Ausgabedatei = '+data + '.jpg' );
writeln('');
writeln('');
writeln('Ergebnis :');
if not RenameFile(PChar(ParamStr(i)),
PChar(ExtractFilePath(ParamStr(i)) + data + '.jpg')) then
ShowMessage(SysErrorMessage(GetLastError));

SirThornberry 18. Mär 2008 15:29

Re: Datei Umbenennen
 
autsch, ganz eindeutig. Dein zieldateiname ist ein ungülter Name. Doppelpunkte im Dateinamen waren noch nie erlaubt!

Gehstock 18. Mär 2008 15:31

Re: Datei Umbenennen
 
Autsch Ganz übersehen ok ändere das mal


Edit das war die Lösung DANKE :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 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