您的位置:首页 > 编程语言 > Delphi

delphi 的ftp使用

2020-03-01 23:45 78 查看

     Unit1;

         interface

         uses

          Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

         Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,

         IdTCPClient, IdFTP;

         type

        TForm1 = class(TForm)

        IdFTP1: TIdFTP;

        Button1: TButton;

       Memo1: TMemo;

       Edit1: TEdit;

      Button2: TButton;

     Label1: TLabel;

     Button3: TButton;

     OpenDialog1: TOpenDialog;

     procedure Button1Click(Sender: TObject);

     procedure Button2Click(Sender: TObject);

     procedure Button3Click(Sender: TObject);

     procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;

       const AStatusText: String);

   private

     { Private declarations }

   public

     { Public declarations }

   end;

var

   Form1: TForm1;

implementation

uses IdFTPList, IdFTPCommon;

{$R *.dfm}

{

本程序是一个ftp   demo程序,我用windows信息服务在本机建立了一个ftp服务,

本机IP:192.168.10.99

用户名:cc

密码:1

}

procedure TForm1.Button1Click(Sender: TObject);

var

   tr : Tstrings;

begin   //连接

   tr := TStringlist.Create;

   IdFTP1.Host := '192.168.10.99'; //FTP服务器地址

   IdFTP1.Username := 'user'; //FTP服务器用户名

   IdFTP1.Password := 'user'; //FTP服务器密码

   IdFTP1.Connect();   //连接到ftp

   Edit1.Text := IdFTP1.RetrieveCurrentDir;//得到初始目录

   IdFTP1.ChangeDir('client'); //进入到client子目录

   //IdFTP1.ChangeDir('..'); //回到上一级目录

   IdFTP1.List(tr); //得到client目录下所有文件列表

   Memo1.Lines.Assign(tr);

   tr.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

   tt :TIdFTPListItems;

   t : TIdFTPListItem;

   i : integer;

   tfname : String;

begin   //下载

   Label1.Caption := IdFTP1.DirectoryListing.Items[0].FileName;

   IdFTP1.TransferType := ftBinary; //指定为二进制文件   或文本文件ftASCII

   for i:=0 to IdFTP1.DirectoryListing.Count-1 do

   begin

     tt := IdFTP1.DirectoryListing; //得到当前目录下文件及目录列表

     t := tt.Items; //得到一个文件相关信息

     Label1.Caption :=t.Text;   //取出一个文件信息内容

     tfname := t.FileName;

     showmessage(t.OwnerName+'   '+t.GroupName+'   '+t.FileName+'   '+t.LinkedItemName);

     if IdFTP1.DirectoryListing.Items.ItemType = ditFile then //如果是文件

     begin

       IdFTP1.Get(tfname,'d:\FTPtest\'+tfname,True,True); //下载到本地,并为覆盖,且支持断点续传

     end;

   end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var

   fi : string;

begin   //上传

   if OpenDialog1.Execute then

   begin

     fi := OpenDialog1.FileName;

     IdFTP1.Put('f:\测试文档样本.rar','测试文档样本.rar');//上传,

   end;

end;

procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;

   const AStatusText: String);

begin

   {case   AStatus of

     hsResolving   : showmessage('hsResolving');

     hsConnecting: showmessage('hsConnecting');

     hsConnected: showmessage('hsConnected');

     hsDisconnecting: showmessage('hsDisconnecting');

     hsDisconnected: showmessage('hsDisconnected');

     hsStatusText: showmessage('hsStatusText');  

     ftpTransfer: showmessage('文件传送完毕。');

     ftpReady: showmessage('准备传送文件....');

     ftpAborted: showmessage('传送失败');

   end;         }

   //showmessage(AStatusText);

end;

end.

  • 点赞
  • 收藏
  • 分享
  • 文章举报
qq_27702861 发布了1 篇原创文章 · 获赞 3 · 访问量 3005 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: