für solche Fälle gibts bei mir die Funktion DeleteFileTimeOut.
Ich hab schon genügend Ärger damit gehabt ! (Eventuell kannst Dir die TimeOut Zeit noch als Parameter übergeben)
Code:
function DeleteFileTimeOut(Filename : string) : boolean;
var TimeOut : DWORD;
begin
result := false;
Timeout := gettickcount + (7000); // 7 Sekunden
while FileExists(FileName) and not DeleteFile( FileName ) and (gettickcount < TimeOut) do sleepx(50);
if gettickcount < Timeout then result := true;
end; // von DeleteFileTimeout
achja .. das fehlt auch noch.
Code:
procedure SleepX(SleepTicks: DWORD);
var
TC: DWORD;
begin
TC := GetTickCount;
repeat
if application.Terminated then exit;
Application.ProcessMessages;
sleep(1);
until ((GetTickCount-TC) > SleepTicks) or application.Terminated;
end;