AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein kopieren und gleichzeitig umbenennen einer Datei
Thema durchsuchen
Ansicht
Themen-Optionen

kopieren und gleichzeitig umbenennen einer Datei

Ein Thema von Susanne · begonnen am 1. Feb 2005 · letzter Beitrag vom 1. Feb 2005
Antwort Antwort
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:04
Ich möchte eine Datei kopieren und ihr im Zielverzeichnis einen neuen Namen geben

Delphi-Quellcode:
von:= ExtractFilePath(Sourcepath)+KeyValue+'.tif';
nach:= Exportpath+'\'+ExportName+'.tif';
CopyFile(PChar(von), PChar(nach), False);
Aber wenn ich das so versuche, kopiert er die Datei gar nicht erst

Delphi-Quellcode:
von:= ExtractFilePath(Sourcepath)+KeyValue+'.tif';
nach:= Exportpath+'\'+KeyValue+'.tif';
nach2:= Exportpath+'\'+ExportName+'.tif';
if CopyFile(PChar(von), PChar(nach), False) then
   begin
      RenameFile(nach,nach2 );
   end;
Wenn ich sie erst mit dem gleichen Namen ins Zielverzeichnis stelle, kopiert er die Datei, aber im nächsten Schritt benennt er sie nicht um?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:08
Gib doch beim Kopieren gleich einen anderen Dateinamen an. Dann ist es bei der fehlersuche immer sehr Hilfreich sich mal die Inhalte der Variablen anzugucken und dann auch mal SeyErrorMessage(GetLastError) aufzurufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#3

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:15
bei der ersten Variante habe ich ja gleich den neuen Namen für die Datei angegeben,aber da hat er sie noch nicht mal kopiert und in den Variablen standen die richtigen Pfade und Dateinamen drin
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:16
Schön. Und jetzt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:26
Was sagt denn nun GetLastError?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#6

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:28
der zieldatei name kann Zeichen enthalten wie zb /, kann das daran liegen, dass er die Datei nicht umbenennen will. Wie kann ich ihn dazu überreden, es trotzdem zu tun?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

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

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:30
Hi,

prüf vorher, ob der Zieldateiname "verbotene" Zeichen enthält, z.B. /*? etc. und entferne/ersetze diese. Solche Zeichen kann ein Dateiname nicht enthalten, da kannste niemals nie nicht Windows dazu überreden

Gruß
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 Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 14:33
Nein. Sollte der Dateiname nicht den namenskonventionen für einen Dateinamen entsprechen, dann geht es nicht:
Zitat von PSDK:
Naming Conventions
The following rules enable applications to create and process valid names for files and directories regardless of the file system in use:
  • Use a period (.) to separate the base file name from the extension in a directory name or file name.
  • Backslashes (\) are used to separate components in paths (dividing the file name from the path to it, or directories from one another in a path). You cannot use them in file or directory names, however, they may be required as part of volume names— for example, "C:\". Note that UNC names must adhere to the following format: \\<server>\<share>.
  • Use any character in the current code page for a name, except characters in the range 0 through 31 or any character explicitly disallowed by the file system. A name can contain characters in the extended character set (128–255). However, it cannot contain the following reserved characters:
    < > : " / \ |
  • The following reserved device names cannot be used as the name of a file: CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. Also avoid these names followed by an extension (for example, NUL.tx7).
  • Do not assume case sensitivity. Consider names such as OSCAR, Oscar, and oscar to be the same.
  • Do not end a file or directory name with a trailing space or a period. Although the underlying file system may support such names, the operating system does not.
  • Use a period (.) as a directory component in a path to represent the current directory.
  • Use two consecutive periods (..) as a directory component in a path to represent the parent of the current directory.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#9

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 15:08
Tach!
Ich habe nen einfacheren Befehl: Wie wäre es denn mit
Code:
function copyFileTo(const Source:String, const Destinaton: String):Boolean:
Da geht des doch recht leicht?! Brauchst nur die USES "idGlobal" hinzufügen! Der Rest mit dem Umbenennen geht dann ganz einfach... Das solltest du dann auch noch schaffen *lol*

mfg shark
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#10

Re: kopieren und gleichzeitig umbenennen einer Datei

  Alt 1. Feb 2005, 15:14
Es geht auch, wenn man nur "Classes" einbindet IdGlobal hat ja nicht jeder, weils Teil der Indys ist.

Delphi-Quellcode:
function CopyFile(Surce, Dest: String): Boolean;
var F, T: TFileStream;
begin
  try
    Result := true;
    try
      F := TFileStream.Create(Source, fmRead);
      T := TFileStream.Create(Dest, fmCreate);
      T.CopyFrom(F, 0);
    finally
      F.Destroy;
      T.Destroy;
    end;
  except
    Result := false;
  end;
end;
@Luckie: Verhau mich nicht, nur weil die Resourcenschutzblöcke nicht ganz stimmen
  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 16:21 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