Witam. Siedzę na trywialnym problemem i nie wiem o co chodzi:
FTPGet to komponent z pakietu indy "TIdFtp"
Oto kod:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
SL : TStringList;
begin
SL := TStringList.Create;
FTPGet.Host := 'ftp.*******.pl';
FTPGet.Username := 'anonymous';
FTPGet.Port := 21;
FTPGet.password := '********';
FTPGet.Passive := True;
FTPGet.TransferType := ftBinary;
FTPGet.Connect;
try
try
RichEdit1.Lines.Add('połączono');
RichEdit1.Lines.Add('Katalog: '+FTPGet.RetrieveCurrentDir);
FTPGet.List(SL,'',true);
RichEdit1.Lines.Add(SL.Text);
RichEdit1.Lines.Add('Zmieniam katalog');
FTPGet.ChangeDir(FTPGet.RetrieveCurrentDir+'licence');
RichEdit1.Lines.Add('Katalog: '+FTPGet.RetrieveCurrentDir);
FTPGet.List(SL,'',true);
RichEdit1.Lines.Add(SL.Text);
RichEdit1.Lines.Add('Pobieram plik');
FTPGet.Get('licence.bin','c:\exe\rejestracja\licence.bin',true);
//FTPGet.Get('/licence.bin','c:\exe\rejestracja\licence.bin',true);
//FTPGet.Get('licence/licence.bin','c:\exe\rejestracja\licence.bin',true);
//FTPGet.Get('/licence/licence.bin','c:\exe\rejestracja\licence.bin',true);
//FTPGet.Get(FTPGet.RetrieveCurrentDir+'/licence.bin','c:\exe\rejestracja\licence.bin',true);
except
on E:Exception do RichEdit1.Lines.Add('Błąd:'#13+e.Message);
end;
finally
SL.Free;
FTPGet.Disconnect;
end;
end;
Problem polega na tym że nie mogę pobrać pliku bo rzekomo nie istnieje. A jednak jest jak go listuję.
Oto wynik w okienku
połączono
Katalog: /
drwxr-xr-x 4 ftp ftp 4096 Aug 17 13:24 .
drwxr-xr-x 4 ftp ftp 4096 Aug 17 13:24 ..
drwx--x--x 2 ftp ftp 4096 Sep 16 2013 incoming
drwxr-xr-x 2 ftp ftp 4096 Aug 21 09:40 licence
-rw-r--r-- 1 ftp ftp 6 Jul 17 11:47 welcome.msg
Zmieniam katalog
Katalog: /licence
drwxr-xr-x 2 ftp ftp 4096 Aug 21 09:40 .
drwxr-xr-x 4 ftp ftp 4096 Aug 17 13:24 ..
-rw-r--r-- 1 ftp ftp 103 Aug 21 09:40 \licence\licence.bin
Pobieram plik
Błąd:
licence.bin: No such file or directory
Ewidentnie robię jakiś głupi błąd tylko, że go nie widzę.
Proszę o oświecenie, z góry dzięki.