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

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  (4)改变目录

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

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

  过程说明:

procedure ChangeDir(const ADirName: string);

  改变工作目录

  属性

const ADirName: string

  远程服务器的目录描述

  说明:该过程实际上是实现了FTP CWD命令。

procedure ChangeDirUp;

  到上一级目录

function RetrieveCurrentDir: string;

  该函数返回当前目录名

procedure List(ADest: TStrings; const ASpecifier: string; const ADetails: boolean);

  列出当前目录所有文件和子目录及其属性

  参数:

ADest: TStrings

  保存文件及子目录的返回结果

const ASpecifier: string = ''

  文件掩码,用于列出符合条件的文件

const ADetails: boolean = true

  包含文件和子目录属性

property DirectoryListing: TIdFTPListItems;

  返回文件及目录结构的列表

  示例代码:

LS := TStringList.Create;

try

IdFTP1.ChangeDir(DirName);

IdFTP1.TransferType := ftASCII;

CurrentDirEdit.Text := IdFTP1.RetrieveCurrentDir;

DirectoryListBox.Items.Clear;

IdFTP1.List(LS);

DirectoryListBox.Items.Assign(LS);

if DirectoryListBox.Items.Count > 0 then

if AnsiPos('total', DirectoryListBox.Items[0]) > 0 then DirectoryListBox.Items.Delete(0);

finally

LS.Free;

end;

 

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答