Du kannst die Prozedur wie folgt vereinfachen:
Delphi-Quellcode:
procedure ...
var
lStream: TFileStream;
htp2: TIdHTTP;
filename : string;
begin
filename := 'IMKEREIDB_IMP.sqlite';
htp2 := TIdHTTP.Create(nil);
lStream := nil;
try
lStream:=TFileStream.Create('C:\borland\'+filename, fmCreate or fmShareExclusive);
HTP2.Get('http://www.josefkoller.de/'+filename,lStream);
finally
lStream.Free;
htp2.Free;
end;
end;
Nun zur Erklärung:
Es ist nicht nötig die Datei explizit zu Löschen; dies wird schon durch
fmCreate
veranlasst.
Wichtig ist auch die Angabe von
fmShareExclusive
.
Solange die Datei heruntergeladen wird, möchtest du nicht, dass irgendjemand die Datei im Zugriff hat.
Sollte die Datei noch anderweitig geöffnet sein, dann wird beim Öffnen des FileStreams eine
Exception erzeugt.