利用Indy的TIdFtp控件实现FTP协议

http://tech.ddvip.com   2006年07月31日    社区交流

本文详细介绍利用Indy的TIdFtp控件实现FTP协议

  (3)连接远程服务器

  完成了设定控件属性和实现了控件的事件响应后,就可以与服务器进行交互和传输了。在连接之前,应首先判断IdFtp是否处于连接状态,如果Connected为False,则通过界面控件或其他方式指定与服务器连接相关的一些TCP类属性的设置,分别是:Host(主机名):String、Username(用户名):String、Password(密码):String,也可以指定Port(端口)。之后调用Connect方法连接远程服务器,如果无异常出现则连接成功建立。

  过程说明:procedure Connect(AAutoLogin: boolean; const ATimeout: Integer);

  该过程连接远程FTP服务器

  属性:AAutoLogin: boolean = True

  连接后自动登录,该参数默认为True。

  const ATimeout: Integer = IdTimeoutDefault

  超时时间,单位:秒。

  示例代码:

  if IdFTP1.Connected then
 try
  if TransferrignData then IdFTP1.Abort;
   IdFTP1.Quit;
   finally
   end
  else
   with IdFTP1 do try
    Username := UserIDEdit.Text;
    Password := PasswordEdit.Text;
    Host := FtpServerEdit.Text;
    Connect;
    ChangeDir(CurrentDirEdit.Text);
    finally
   end;

  (4)改变目录

  连接建立后,可以改变当前FTP会话所在的目录。对于已知绝对路径的情况下,可以直接调用ChangeDir(const ADirName: string)方法来转换目录,ADirName表示服务器上的文件系统目录,另外还可以调用ChangeDirUp回到上级目录。

  如果未知路径,则可以通过List(ADest: TStrings; const ASpecifier: string; const ADetails: boolean)过程获取远程服务器的当前目录结构,此时必须设定TransferType为ftASCII(ASCII模式),其中:ADest保存当前目录结构,可以在后续程序中调用该列表。另外可以通过RetrieveCurrentDir方法获取当前目录名。

作者:cokeyang    责编:豆豆技术应用

正在加载评论...