Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Neue Fehlermeldung bei CopyFile (https://www.delphipraxis.net/184069-neue-fehlermeldung-bei-copyfile.html)

tinibeenie 23. Feb 2015 15:52

Neue Fehlermeldung bei CopyFile
 
Hallo,

mein Programm prüft, ob eine bestimmte Datei bearbeitet wird. Dann wartet es, bis die Datei vollständig geschrieben ist und kopiert sie an eine andere Stelle. Das Warten und Kopieren habe ich bisher (mit XE3) folgendermaßen gelöst:

Delphi-Quellcode:
while not CopyFile(PChar(oldName), PChar(newName), false) do
....
Das hat bisher immer gut funktioniert. Jetzt habe ich auf XE6 upgedatet und das Programm erneut kompiliert und nun erscheint immer die Meldung: "Datei ... kann nicht geöffnet werden. The process cannot access the file because it is being used by another process." Das Programm läuft trotzdem weiter, so dass die Meldung ein paar Mal erscheint und irgendwann kopiert es die Datei trotzdem. Aber es sieht für den Kunden natürlich nicht so gut aus, wenn sich ein Haufen Fehlermeldungen öffnen.

Deshalb nun meine Frage an euch: Gibt es eine Möglichkeit, diese Meldung zu unterdrücken?

mkinzler 23. Feb 2015 15:56

AW: Neue Fehlermeldung bei CopyFile
 
Versuch mal
Delphi-Quellcode:
while not CopyFile(PAnsiChar(oldName), PAnsiChar(newName), false) do

Bernhard Geyer 23. Feb 2015 15:58

AW: Neue Fehlermeldung bei CopyFile
 
Zitat:

Zitat von mkinzler (Beitrag 1291146)
Versuch mal
Delphi-Quellcode:
while not CopyFile(PAnsiChar(oldName), PAnsiChar(newName), false) do

??? Er kommt von XE3. Das war auch schon Unicode

himitsu 23. Feb 2015 16:17

AW: Neue Fehlermeldung bei CopyFile
 
Sowas macht man niemals, auch nicht Versuchsweise. :warn:
Denn wer soeinen Scheiß vor D2009 gemacht hatte, der hatte bei Umstellung schön Spaß damit.

CopyFile -> PChar -> String
ODER
CopyFileA -> PAnsiChar -> AnsiString


Dieses ist auch wirklich das CopyFile aus der WinApi.Windows.pas?

Delphi-Referenz durchsuchenTFile.Copy (System.IOUtils)

tinibeenie 23. Feb 2015 16:46

AW: Neue Fehlermeldung bei CopyFile
 
Danke für eure Antworten. :-D Habe nun CopyFile (ja, das aus der WinApi) durch TFile.Copy ersetzt und es funktioniert genauso wie vorher, d.h. es funktioniert, aber die Meldung kommt immer noch. Kann man das irgendwo abstellen?

himitsu 23. Feb 2015 16:48

AW: Neue Fehlermeldung bei CopyFile
 
Eventuell pfuscht irgendeine Komponente neuerdings am MSDN-Library durchsuchenSetErrorMode rum, oder Dergleichen?

SEM_NOOPENFILEERRORBOX


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