AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Datei wird mit CopyFile fehlerhaft kopiert
Thema durchsuchen
Ansicht
Themen-Optionen

Datei wird mit CopyFile fehlerhaft kopiert

Ein Thema von HPB · begonnen am 20. Mär 2014 · letzter Beitrag vom 24. Mär 2014
Antwort Antwort
Seite 1 von 2  1 2      
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#1

Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 08:18
Guten Delphianer,
ich erstelle mit pDFFactory ein PdfDruck im Hintergrund.
Das gelingt auch sehr gut. Da es sich um Rechnungen handelt,
sollen die erzeugten Drucke jeweils in unterscheidliche Ordner mit
unterschiedlichen Namen gespeichert werden.
Dazu nutze ich den Befehl:
Delphi-Quellcode:
pQuellDatei := 'd:\Rechnungen\unbenannt.pdf'; // wird von pdfFactory erzeugt
pZielDatei := 'd:\kundenrechnungen\meyer\rechnung-nr-11456.pdf'; // wird später immer unterschiedlich sein
CopyFile(pChar(pQuellDatei), PCahr(pZielDatei), False);
.
Die Datei wird auch in das angegebene Verzeichnis kopiert.
Will ich aber die kopierte Datei öffnen, so bekomme ich vom AcrobatReader als
auch vom Nitro-Reader, die Fehlermeldung: Die Datei ist beschädigt und kann nicht geöffnet werden.
Die von pdfFactory erzeugte Datei "unbenannt.pdf" lässt sich Fehlerfrei öffnen.

Auch das Kopieren über die entsprechende Komponente 'TJvSHFileOperation' von JEDI gelingt,
es wird jedoch beim Aufrufen der gleiche Fehler ausgegeben.

Was läuft hier falsch? Muss ich vielleicht einen anderen Befehl nehmen?

Vielen Dank für Eure Mühen und Hilfen im Voraus
HPB
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 08:24
Guten Morgen,

da Dateien kopieren unter Windows erst mal grundsätzlich funktioniert, tippe ich auf die einfachste Lösung in dem Fall:
Es wird zum Zeitpunkt des Kopierens entweder die Daten nicht vollständig geschrieben sein bzw. noch ein FileHandle offen sein was das Kopieren verhindert...

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 08:55
Von welchem Typ sind die Variablen pQuelldatei und pZieldatei? Und warum lässt sich der Schreibfehler "PCahr" kompilieren?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 08:56
Wo liegt denn der Unterschied zwischen den beiden Dateien? Sind nur einzelne Bytes anders?
(Das kannst du ja ganz einfach mit einem beliebigen Hexeditor prüfen, z.B. HxD.)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.445 Beiträge
 
Delphi 12 Athens
 
#5

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 09:00
Du solltest in jedem Fall auch den Rückgabewert von CopyFile überprüfen. Alternativ kannst du auch TFile.Copy aus System.IOUtils verwenden - das wirft eine Exception.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#6

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 09:21
Von welchem Typ sind die Variablen pQuelldatei und pZieldatei? Und warum lässt sich der Schreibfehler "PCahr" kompilieren?
"PCahr" ist ein Schreibfehler von mir!
Im Quellcode steht es schon korrket.
Vielen Dank aber trotzdem für den Hinweis.
HPB
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#7

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 09:23
Wo liegt denn der Unterschied zwischen den beiden Dateien? Sind nur einzelne Bytes anders?
(Das kannst du ja ganz einfach mit einem beliebigen Hexeditor prüfen, z.B. HxD.)
Es gibt keinen Unterschied in den Dateien. Die Ausgangsdatei wird einfach
unter einem neuen Namen in ein anderes Verzeichnis kopiert.
Vielen Dank für Deine Mühe.
HPB
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 09:29
Guten Morgen,

da Dateien kopieren unter Windows erst mal grundsätzlich funktioniert, tippe ich auf die einfachste Lösung in dem Fall:
Es wird zum Zeitpunkt des Kopierens entweder die Daten nicht vollständig geschrieben sein bzw. noch ein FileHandle offen sein was das Kopieren verhindert...

Grüße
Da scheint etwas dran zu sein. Ich habe einfach mal per Batchdatei die erzeugte Datei in eine
andere Datei kopiert: unbenannt.pf =>> rechnung.pdf
Die Batchdatei wird von pdfFactory aufgerufen und ausgeführt.
Danach kopiere ich die Datei "rechnung.pdf" per CopyFile(quelldatei, zieldatei).
Das scheint jetzt erfolgreich zu sein.
Mal sehen was geschieht, wenn ich es auf herz und Nieren prüfe.
Vielen Dank für Deinen Hinweis.
HPB
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#9

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 20. Mär 2014, 09:30
Du solltest in jedem Fall auch den Rückgabewert von CopyFile überprüfen. Alternativ kannst du auch TFile.Copy aus System.IOUtils verwenden - das wirft eine Exception.
Das werd ich mal prüfen.
Vielen Dank für den Tipp.
HPB
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Datei wird mit CopyFile fehlerhaft kopiert

  Alt 23. Mär 2014, 11:14
Es gibt keinen Unterschied in den Dateien. Die Ausgangsdatei wird einfach
unter einem neuen Namen in ein anderes Verzeichnis kopiert.
Wenn es keinen Unterschied nach dem Kopieren geben würde, was wäre dann fehlerhaft?
Irgendeinen Unterschied muss es in den Dateien doch geben.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:28 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