Ich hab ein
FTP-Client programmiert. Dieser funktioniert soweit. Leider hab ich paar Probleme mit einpaar
Servern. Bei manchen Servern kann ich nur ein paar Dateien downloaden.
Obwohl die Dateien vorhanden sind und ich diese mit SmartFTP z.B. downloaden kann, streikt mein indyclient
mit folgender Meldung:
Project FTPClient.exe raised
exception class EIdProtocolReplyError with message 'Test.r05: The system cannot find the file specified.'. Process stopped. Use Step or Run to continue.
Dann werde ich immer auf diese Zeile
IdFTP1.Get(Name, SaveDialog1.FileName, false);
aufmerksam gemacht. Was kann hier der Fehler sein?
Hier der komplette Code für den Downloadprozess:
Delphi-Quellcode:
procedure TMainForm.DirectoryListBoxDblClick(Sender: TObject);
Var
Name, Line : String;
begin
if not IdFTP1.Connected then exit;
Line := DirectoryListBox.Items[DirectoryListBox.ItemIndex];
Name := IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName;
if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType = ditDirectory then begin
//Change directory
SetFunctionButtons(false);
ChageDir(Name);
SetFunctionButtons(true);
end
else begin
try
SaveDialog1.FileName := Name;
if SaveDialog1.Execute then begin
SetFunctionButtons(false);
IdFTP1.TransferType := ftBinary;
BytesToTransfer := IdFTP1.Size(Name);
if FileExists(Name) then begin
case MessageDlg('Datei existiert bereits. Willst Du mit dem Download weitermachen?',
mtConfirmation, mbYesNoCancel, 0) of
mrYes: begin
BytesToTransfer := BytesToTransfer - FileSizeByName(Name);
IdFTP1.Get(Name, SaveDialog1.FileName, false, true);
end;
mrNo: begin
IdFTP1.Get(Name, SaveDialog1.FileName, true);
end;
mrCancel: begin
exit;
end;
end;
end
else begin
IdFTP1.Get(Name, SaveDialog1.FileName, false);
end;
end;
finally
SetFunctionButtons(true);
end;
end;
end;