|
@@ -3497,6 +3497,7 @@ var
|
|
PrevState: TPreviousFsRedirectionState;
|
|
PrevState: TPreviousFsRedirectionState;
|
|
DestFile, TempFile: String;
|
|
DestFile, TempFile: String;
|
|
TempF: TFileStream;
|
|
TempF: TFileStream;
|
|
|
|
+ TempFileLeftOver: Boolean;
|
|
HTTPDataReceiver: THTTPDataReceiver;
|
|
HTTPDataReceiver: THTTPDataReceiver;
|
|
HTTPClient: THTTPClient;
|
|
HTTPClient: THTTPClient;
|
|
HTTPResponse: IHTTPResponse;
|
|
HTTPResponse: IHTTPResponse;
|
|
@@ -3530,6 +3531,7 @@ begin
|
|
HTTPDataReceiver := nil;
|
|
HTTPDataReceiver := nil;
|
|
HTTPClient := nil;
|
|
HTTPClient := nil;
|
|
TempF := nil;
|
|
TempF := nil;
|
|
|
|
+ TempFileLeftOver := False;
|
|
try
|
|
try
|
|
{ Setup downloader }
|
|
{ Setup downloader }
|
|
HTTPDataReceiver := THTTPDataReceiver.Create;
|
|
HTTPDataReceiver := THTTPDataReceiver.Create;
|
|
@@ -3546,6 +3548,7 @@ begin
|
|
raise Exception.Create('DisableFsRedirectionIf failed');
|
|
raise Exception.Create('DisableFsRedirectionIf failed');
|
|
try
|
|
try
|
|
TempF := TFileStream.Create(TempFile, fmCreate);
|
|
TempF := TFileStream.Create(TempFile, fmCreate);
|
|
|
|
+ TempFileLeftOver := True;
|
|
finally
|
|
finally
|
|
RestoreFsRedirection(PrevState);
|
|
RestoreFsRedirection(PrevState);
|
|
end;
|
|
end;
|
|
@@ -3602,12 +3605,14 @@ begin
|
|
SetLastError(LastError);
|
|
SetLastError(LastError);
|
|
Win32ErrorMsg('MoveFile'); { Throws an exception }
|
|
Win32ErrorMsg('MoveFile'); { Throws an exception }
|
|
end;
|
|
end;
|
|
-
|
|
|
|
|
|
+ TempFileLeftOver := False;
|
|
end;
|
|
end;
|
|
finally
|
|
finally
|
|
TempF.Free;
|
|
TempF.Free;
|
|
HTTPClient.Free;
|
|
HTTPClient.Free;
|
|
HTTPDataReceiver.Free;
|
|
HTTPDataReceiver.Free;
|
|
|
|
+ if TempFileLeftOver then
|
|
|
|
+ DeleteFileRedir(DisableFsRedir, TempFile);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|