Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [CopyFile] Rückgabewert false, aber kein Grund (https://www.delphipraxis.net/88595-%5Bcopyfile%5D-rueckgabewert-false-aber-kein-grund.html)

xZise 17. Mär 2007 19:49


[CopyFile] Rückgabewert false, aber kein Grund
 
Ich habe folgenden Code:
Delphi-Quellcode:
  if CopyFile(PChar(appDir + 'Update.exe'), PChar(qdPath), true) then
  begin
     MessageBox(Handle, PChar('The update was sucessfully installed!'), PChar('Update sucess'), MB_OK or MB_ICONEXCLAMATION);
  end else
    MessageBox(Handle, PChar('Quick Download can''t updated. Please repeat it later'), PChar('No update'), MB_OK or MB_ICONWARNING);
Aber er kopiert die Datei nicht...

fwsp 17. Mär 2007 19:54

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
ist in qdPath auch neben dem pfad auch der dateiname enthalten?

Matze 17. Mär 2007 19:57

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
Sonst könntest du auch mal schauen, was dir

Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
liefert. Einfach nach deinem Code ausführen.

xZise 17. Mär 2007 19:58

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
Habe ich vergessen zu sagen: Wenn ich beide Pfade ausgebe, kopiere, im Explorer einfüge und ausführe => startet das Prog

@ Matze: Ich liebe win ^^
Zitat:

---------------------------
Quickdownloadupdate
---------------------------
Der Vorgang wurde erfolgreich beendet
---------------------------
OK
---------------------------

Sunlight7 18. Mär 2007 03:37

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
Moin!

Hast Du zufällig sowas gemacht?
Delphi-Quellcode:
if CopyFile(PChar(appDir + 'Update.exe'), PChar(qdPath), true) then
  begin
    MessageBox(Handle, PChar('The update was sucessfully installed!'), PChar('Update sucess'), MB_OK or MB_ICONEXCLAMATION);
  end else begin
    MessageBox(Handle, PChar('Quick Download can''t updated. Please repeat it later'), PChar('No update'), MB_OK or MB_ICONWARNING);
    ShowMessage(SysErrorMessage(GetLastError));
end;
Hat appDir einen abschließenden \ ?

Grüßle!

himitsu 18. Mär 2007 08:28

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
oder man wendet sich mal an die Definition:
Code:
BOOL CopyFile(LPCTSTR lpszExistingFile, LPCTSTR lpszNewFile, BOOL fFailIfExists)
lpszNewFile ... File und nicht Dir/Path

Übergibt man da ein Verzeichnis(Dir), dann soll ja das Verzeichnis mit der Datei überschrieben werden, was natürlich schiefgehn muß.

Delphi-Quellcode:
if CopyFile(PChar(appDir + 'Update.exe'), PChar(qdPath + 'Update.exe'), true) then
@Sunlight7: da appDir ja anscheinend ein abschließendes Backslash hat, würde ich einfach mal davon aus daß qdPath dieses auch hat. :stupid:
Aber er hätte und ja auch einfach mal sagen können was sich in appDir und qdPath befindet ... wäre für die Fehlersuche schon eine recht wichtige Angabe gewesen. :stupid:


PS: vielleicht wäre es auch schön, wenn er sich an die Namensgebung (z.B. von Delphi) hält.
Filename = Dateiname, eventuell inklusive Verzeichnis
Path = Verzeichnis mit \, sozusagen der Pfad zu einer Datei
Dir = das Verzichenis selber, also ohne \

Delphi-Quellcode:
if CopyFile(PChar(appDir + '\Update.exe'), PChar(qdDir + '\Update.exe'), true) then
if CopyFile(PChar(appDir + '\Update.exe'), PChar(qdPath + 'Update.exe'), true) then
if CopyFile(PChar(appPath + 'Update.exe'), PChar(qdPath + 'Update.exe'), true) then
...

xZise 18. Mär 2007 08:57

Re: [CopyFile] Rückgabewert false, aber kein Grund
 
Zitat:

Zitat von xZise
Habe ich vergessen zu sagen: Wenn ich beide Pfade ausgebe, kopiere, im Explorer einfüge und ausführe => startet das Prog

1. appDir hat ein abschließendes "\"
2. qdPath ist ein Pfad zur Datei (X:\Y\A.exe)

Zitat:

Zitat von himitsu
PS: vielleicht wäre es auch schön, wenn er sich an die Namensgebung (z.B. von Delphi) hält.
Filename = Dateiname, eventuell inklusive Verzeichnis
Path = Verzeichnis mit \, sozusagen der Pfad zu einer Datei
Dir = das Verzichenis selber, also ohne \

Delphi-Quellcode:
if CopyFile(PChar(appDir + '\Update.exe'), PChar(qdDir + '\Update.exe'), true) then
if CopyFile(PChar(appDir + '\Update.exe'), PChar(qdPath + 'Update.exe'), true) then
if CopyFile(PChar(appPath + 'Update.exe'), PChar(qdPath + 'Update.exe'), true) then
...

War mir so noch nicht klar... Also denkt euch:
"appDir" = "appPath"
"qdPath" = "qdFileName"


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