Ich habe die gleiche Frage schon in einem anderen Thread gestellt, aber wir wissen ja: Neue Frage, neuer Thread!
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!