Ihr müsst natürlich prüfen, ob die lokale Datei überhaupt existiert.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
srcFile: string; // Und nicht so geizig mit lokalen Variablen sein!!!
begin
srcFile := 'log.log';
if not FileExists(srcFile) then
begin
Caption := Format('Datei %s nicht gefunden', [srcFile]);
Exit;
end;
....
IdFTP1.Put(srcFile);
....
end;
Und zusätzlich könnte man prüfen, ob die Datei noch im Zugriff ist:
Delphi-Quellcode:
function FileIsClosed(const filename:string):Boolean;
var
hnd: THandle;
begin
hnd := CreateFile(PChar(filename), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
result := hnd <> INVALID_HANDLE_VALUE;
CloseHandle(hnd);
end;
Ausserdem muss man natürlich die Events von IdFTP1 benutzen (Zumindest bei OnConnect).