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/)
-   -   Delphi SHFileOperation - Fehler auswerten (wie?) (https://www.delphipraxis.net/26006-shfileoperation-fehler-auswerten-wie.html)

Lefko 16. Jul 2004 11:23


SHFileOperation - Fehler auswerten (wie?)
 
Ich habe die gleiche Frage schon in einem anderen Thread gestellt, aber wir wissen ja: Neue Frage, neuer Thread! :roll:

Also, ich benutze Sakuras fkt. aus der CodeLib:

Delphi-Quellcode:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
                 Flags: FILEOP_FLAGS): Integer;
var FromPath, ToPath: AnsiString;
    SHFileOpStruct: TSHFileOpStruct;
begin
FromPath := aFrom + #0#0;
ToPath := aTo + #0#0;
with SHFileOpStruct do
begin
  Wnd := Application.Handle;
  wFunc := aOperation;
  pFrom := PAnsiChar(FromPath);
  if ToPath <> ''
    then pTo := PAnsiChar(ToPath)
    else pTo := nil;
  fFlags := Flags;
end;
Result := SHFileOperationA(SHFileOpStruct);
end;
Manchmal funktioniert die Dateioperation ja nicht, weil z.B. die Datei geöffnet ist und deshalb nicht verschoben werden kann. Kann man (etwa mit GetLastError) herausfinden, WESHALB der Fehler aufgetreten ist? Also damit ich in das Prog noch reinschreiben kann "Datei xyz konnte nicht verschoben werden, weil die Datei geöffnet ist" oder so?

Ich hab mal probiert, mir GetLastError anzeigen zu lassen, es war aber immer 0, auch wenn solch ein Fehler aufgetreten ist!

scp 16. Jul 2004 11:54

Re: SHFileOperation - Fehler auswerten (wie?)
 
Hast du dir mal den Rückgabewert der Funktion angeguckt? In der Hilfe steht zwar nur
Zitat:

Return Values

Returns zero if successful or nonzero if an error occurs.
aber bei "nonzero" gibt es ja mehrere Möglichkeiten.

Lefko 16. Jul 2004 15:10

Re: SHFileOperation - Fehler auswerten (wie?)
 
öh, ich steh nur grad auf m schlauch, was ich noch machen kann, damit verschiedene fehler auftreten :roll:
also "datei ist geöffnet" macht schonmal code 7, aber was kann noch falsch laufen?
ah, "datei wurde nicht gefunden" z.b. (wenn man zwischendurch verschiebt einfach) ist 1026
^hm, was kann es noch so geben?

MfG Lefko


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