利用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 责编:豆豆技术应用