Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

idFTP.Get - Destination file already exists

  Alt 7. Apr 2006, 11:28
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;
  Mit Zitat antworten Zitat