Zunächst mal vorweg: ganz blöd bin ich hoffentlich mal nicht.
Problem: Delphi.Net,
Indy FTP-Client, Verbindung zum
FTP-Server - wunderbar,
FTP.Get --> Destination file already exists.
Die Datei existiert auf der Festplatte 100% nicht (!). Selbst wenn ich den
FTP.Get Parameter Overwrite verwende kommt diese Meldung. Was tun?
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Project1.exe ist eine
Exception der Klasse IdFTP.EIdFTPFileAlreadyExists mit der Meldung 'Destination file already exists.' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Der Zielordner hat alle Schreibrechte, die Datei existiert nicht und der Zieldateiname ist auch korrekt (keine doppelten \ oder so).
Code:
procedure TfrmMain.timStartTimer(Sender: TObject);
var
f: TextFile;
FileName: string;
DestFileName: string;
t: string;
begin
timStart.Enabled := false;
try
log('Verbinde nach ' + IdFTP.Host);
IdFTP.Connect;
IdFTP.Login;
if IdFTP.Connected then begin
log('Verbindung erfolgreich hergestellt!');
t := 'test';
FileName := 'files.txt';
DestFileName := GetRunDir + FileName; // GetRunDir = Aktueller Pfad mit allen Schreibrechten
IdFTP.Get(FileName, DestFileName); // <-- Liefert Fehler
if FileExists(FileName) then begin
assignfile(f, FileName);
reset(f);
while not eof(f) do begin
try
readln(f, t);
IdFTP.Get(t, GetRunDir + t, true, true);
except
log('Datei ' + t + ' konnte nicht heruntergeladen werden!');
end;
end;
end else begin
log('Die Datei files.txt wurde nicht gefunden!');
end;
end else begin
log('Konnte mich nicht verbinden!');
end;
except
on E:
Exception do begin
log('Es gab ein kritisches Problem: ' + E.Message);
end;
end;
end;