Autor Beitrag
gizmo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61

Win 7 64Bit
RAD Studio/Delphi 2007
BeitragVerfasst: Do 15.01.09 16:01 
Hallo,

ich brauche ganz schnell ein Programm, das mir tausend Bilder umbenennt.
Die Dateien haben sehr lange Namen (AlteNr_NeueNr_Agentur_Kunde_Titel_Format.jpeg) und, und das ist das Problem,
sie haben eine vierstellige Endung und können vom Archiv Programmen nicht verarbeitet werden.

Da habe ich mir gedacht, schreibe ich mir schnell ein Tool, dass die Endungen in .jpg ändert.
Dazu verwendete ich folgenden, gefundenen Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function RenameFileEx(const AOldName, ANewName: string;
   ARenameCheck: boolean = false): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := fo_Move;

  // String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
  sh.pFrom := PChar(AOldName + #0);
  sh.pTo := PChar(ANewName + #0);
  sh.fFlags := fof_Silent or fof_MultiDestFiles;
  if ARenameCheck then
    sh.fFlags := sh.fFlags or fof_RenameOnCollision;
  Result:=ShFileOperation(sh)=0;
end;


Nun bekomme ich aber folgende Meldung: "Das Ziel unterstützt keine langen Dateinamen!"
Dann wird mir ein neuer Name vorgeschlagen, der nur noch 8 Zeichen hat.

Die Daten in den Dateinamen sind aber sehr wichtig und dürfen nicht verloren gehen.
Mit Ziel ist meine Festplatte gemeint? Und wer zur Hölle erzeugt überhaupt dieses Meldungsfenster?

Ich möchte die Dateinamen nur ungern zu Fuß ändern und ich wollte eigentlich auch kein Renamer Programm suchen und installieren.
Es bleibt noch die Möglichkeit der Stapelverarbeitung in Photoshop, aber ich bin etwas enttäuscht, dass sich das nicht über Delphi regeln lässt.

Was ist der Grund?
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 15.01.09 16:08 
Nimm doch einfach MoveFile:

ausblenden Delphi-Quelltext
1:
movefile('c:\temp\test.jpeg''c:\temp\test.jpg');					

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
gizmo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61

Win 7 64Bit
RAD Studio/Delphi 2007
BeitragVerfasst: Do 15.01.09 16:34 
Funktioniert. Super. Danke!