![]() |
CopyFileEx kopiert nicht
Hi,
ich will Dateien mit CopyFileEx kopieren (mit CopyFileEx da ich ProgressBars eingebaut habe). Jetzt meine Frage: Warum funktioniert das nicht (es kopiert die Dateien einfach nicht und liefert immer "False" zurück)? Ich habe den folgenden Code von ![]() Ich hoffe ihr könnt mir helfen ;) Standart Code:
Delphi-Quellcode:
Anwendung:
function PProgressRoutine(TotalFileSize,
TotalBytesTransferred, StreamSize, StreamBytesTransferred: LARGE_INTEGER; dwStreamNumber, dwCallbackReason: DWORD; hSourceFile, hDestinationFile: THandle; lpData: Pointer): DWORD; stdcall; begin if dwCallbackReason = CALLBACK_STREAM_SWITCH then TLMDBiProgressBar(lpData).Scale := TotalFileSize.QuadPart; TLMDBiProgressBar(lpData).DarkValue := TotalBytesTransferred.QuadPart; Application.ProcessMessages; Result := PROGRESS_CONTINUE; end; procedure ListCopyProgress(const Files: TStrings; aDestPath: String; TotalProgressBar, CurrentProgressBar: TLMDBiProgressBar); var x, y : integer; FCancelled: Boolean; begin FCancelled := False; x:=Files.Count; TotalProgressBar.MinValue := 0; TotalProgressBar.Scale := x; for y:=0 to x-1 do begin CopyFileEx(PChar(Files[y]), PChar(ExtractFileDir(aDestPath)+'\'+ExtractFileName(Files[y])), @PProgressRoutine, CurrentProgressBar, @FCancelled, 0); TotalProgressBar.DarkValue := y+1; TotalProgressBar.Update; CurrentProgressBar.Update; end; end;
Delphi-Quellcode:
Was geht hier schief?
ListCopyProgress(Dateien, edZielPfad.Text, pbGesamt, pbAktiveDatei);
Edit: TLMDBiProgressBar fast genauso wie TProgressBar nur bisschen verbessert; MinValue = TProgressBar.min Scale = TProgressBar.max DarkValue = TProgressBar.position Danke :) |
AW: CopyFileEx kopiert nicht
Aus der Hilfe:
Zitat:
Delphi-Quellcode:
gibst du als Ziel keinen Dateinamen an.
CopyFileEx(PChar(Files[y]), PChar(ExtractFileDir(aDestPath)+'\'+ExtractFileName(Files[y]))
|
AW: CopyFileEx kopiert nicht
Was soll ExtractFilename denn sonst zurückgeben? OK,
Zitat:
|
AW: CopyFileEx kopiert nicht
Mist. Das war ein Blackout. Ich nehme alles wieder zurück.
|
AW: CopyFileEx kopiert nicht
Das mit ExtractFilePath ausgebessert.
Klappt immer noch nicht - wie du gesagt hast^^ :x |
AW: CopyFileEx kopiert nicht
Speicher die Pfade mal in Variablen zwischen und guck dir deren Inhalt an. Und was sagt GetLastError, wenn CopyFileEx False zurückliefert?
|
AW: CopyFileEx kopiert nicht
Am Anfang warn es die Variablen (Pfade waren gleich) jetzt sind die Pfade unterschiedlich, aber es kommt immernoch ein Error (voher 32) und zwar "1235"...
Was bedeutet der ? PS: Ich fang schonma an zu googlen ;) Vielen Dank für die Hilfe bisher! Mfg, Destroxi |
AW: CopyFileEx kopiert nicht
der teil läuft ....
Delphi-Quellcode:
CopyFileEx(PChar(Files[y]), PChar(IncludeTrailingBackSlash(aDestPath)+ExtractFileName(Files[y])),
nil, nil, nil, 0); |
AW: CopyFileEx kopiert nicht
Code:
Und es wäre auch nicht ganz so dumm, eine Fehlerbehandlung in den Code einzubauen. Oder kannst du was damit anfangen, wenn dich der Kunde anruft und sagt: "Geht nicht", weil du keine Fehlermeldung ausgibst?
C:\Dokumente und Einstellungen\Michael>net helpmsg 32
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. C:\Dokumente und Einstellungen\Michael> |
AW: CopyFileEx kopiert nicht
Code:
Mhh... fragt sich bloß warum :|
C:\Dokumente und Einstellungen\Destroxi>net helpmsg 1235
Die Anforderung wurde abgebrochen Weiß da wer was? Zitat:
Mfg, Destroxi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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 by Thomas Breitkreuz