由于delphi本身自带了indy控件,因此用这些控件实现网络编程即快又容易。尽管如此,我还是极大地鼓励自己查看FTP底层是如何实现的,但就目前而言,indy控件还是一个非常不错的选择。
       针对indy的强大,我还是决定将这段代码帖出来,主要是方便自己日后复习、查询。

Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,IdTCPClient, IdFTP;typeTForm1 = 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;varForm1: TForm1;implementationuses IdFTPList, IdFTPCommon;{$R *.dfm}{本程序是一个ftp  demo程序,我用windows信息服务在本机建立了一个ftp服务,本机IP:192.168.10.99用户名:cc密码:1
}procedure TForm1.Button1Click(Sender: TObject);
vartr : Tstrings;
begin  //连接tr := TStringlist.Create;IdFTP1.Host := '192.168.10.99'; //FTP服务器地址IdFTP1.Username := 'cc'; //FTP服务器用户名IdFTP1.Password := '1'; //FTP服务器密码IdFTP1.Connect();  //连接到ftpEdit1.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);
vartt :TIdFTPListItems;t : TIdFTPListItem;i : integer;tfname : String;
begin  //下载Label1.Caption := IdFTP1.DirectoryListing.Items[0].FileName;IdFTP1.TransferType := ftBinary; //指定为二进制文件  或文本文件ftASCIIfor i:=0 to IdFTP1.DirectoryListing.Count-1 dobegintt := IdFTP1.DirectoryListing; //得到当前目录下文件及目录列表t := tt.Items[i]; //得到一个文件相关信息Label1.Caption :=t.Text;  //取出一个文件信息内容tfname := t.FileName;showmessage(t.OwnerName+'  '+t.GroupName+'  '+t.FileName+'   '+t.LinkedItemName);if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then //如果是文件beginIdFTP1.Get(tfname,'d:/FTPtest/'+tfname,True,True); //下载到本地,并为覆盖,且支持断点续传end;end;
end;procedure TForm1.Button3Click(Sender: TObject);
varfi : string;
begin  //上传if OpenDialog1.Execute thenbeginfi := OpenDialog1.FileName;IdFTP1.Put('f:/测试文档样本.rar','测试文档样本.rar');//上传,end;
end;procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;const AStatusText: String);
begin{case  AStatus ofhsResolving  : 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.

delphi实现FTP上传与下载相关推荐

  1. windows下定时利用bat脚本实现ftp上传和下载

    前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: ...

  2. [ASP.NET]web实现用FTP上传、下载文件(附源码)

    文章配套源码下载地址:https://download.csdn.net/download/djk8888/10486581 index.aspx 页: <%@ Page Language=&q ...

  3. filezilla定时上传_windows下定时利用bat脚本实现ftp上传和下载

    前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: ...

  4. sex 无需下载_elipse FTP插件 - Sexftp 支持FTP上传、下载、比较等功能

    Sexftp简介 Sexftp是FTP上传与下载的eclipse插件,集成在ECLIPSE中,方便开发人员进行FTP相关操作,省去来回切换工具及选择目录的麻烦. Sexftp支持上传.下载等基本操作; ...

  5. C# FTP上传、下载、删除

    01 - FTP概述 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,作为一套古老的网络工具,在工业界有着及其广泛的应用.本节主要给大家演 ...

  6. winform实现FTP上传、下载、删除文件(附源码下载)

    一个用winform开发的FTP上传.下载.删除文件的简单列子: 配套源码下载:https://download.csdn.net/download/djk8888/10473477 注释尽可能详尽, ...

  7. ftp 传输速度_ftp上传工具下载,8款优秀的ftp上传工具下载软件

    FTP上传工具现在有很多种,而且各有各的特点,至于FTP上传工具哪个好用呢?小编认为萝卜白菜各有所爱,看个人喜好,还结合服务器和各种功能方面的需求.小编用的就是iis7服务器管理工具,比较方便而且功能 ...

  8. 3行代码实现ftp 上传、下载、删除操作集合

    为了帮助小伙伴们便捷操作ftp,现对常用的上传.下载.删除功能进行封装,小伙伴只需要传入需要的参数操作即可!告诉小伙伴好消息,本项目我已开源,大家可以根据需要克隆run起来!!! 文章目录 一.集合总 ...

  9. 【Python学习 】Python实现的FTP上传和下载功能

    一.背景 最近公司的一些自动化操作需要使用Python来实现FTP的上传和下载功能.因此参考网上的例子,撸了一段代码来实现了该功能,下面做个记录. 二.ftplib介绍 Python中默认安装的ftp ...

  10. c#实现ftp上传和下载

    代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy ...

最新文章

  1. 惩罚、补偿、正则化、约束的联系和区别
  2. Qt学习(三):事件、定时器、事件过滤器
  3. startup oracle 01012,ORA-01012:not logged on的解决办法
  4. python如何导入图片imread_OpenCV 使用imread()函数读取图片的六种正确姿势
  5. Protobuf生成Java代码(命令行)
  6. linux date -s_Linux炫技:左手密码生成器,解放右手生产力
  7. 模板引擎 Velocity
  8. python实现列表的排列和组合
  9. 逆向工具IDA安装教程
  10. 根据IP获取国家地区
  11. 汽车制造商代码表_汽车制造商合作打造未来汽车
  12. 高清卫星影像查看方法
  13. 在HTML中插入SVG的几种方式
  14. M415步进电机驱动器的使用(C51)
  15. 管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
  16. [原题复现]HCTF 2018 Warmup
  17. 邮件协议(POP3、IMAP、SMTP)
  18. 在金融业务中跨行清算系统的实现过程
  19. 我所知道的富士康之二:出门
  20. Python packing tools not found.

热门文章

  1. 如何打开caj文件?能转成PDF吗?
  2. 量化回测系统 股票回测系统 极简回测 策略开发
  3. 山大往年自招计算机系试题,山大自招现场:考生笔试说“容易”体测喊“难”...
  4. php数独,详解PHP如何实现数独求解
  5. 超好用的iOS设备管理软件——iMazing
  6. 光谱分析中的变量选择
  7. python中的get用法
  8. Day 2: 数据类型的使用,字符编码
  9. IDEA初学者 常用注解意思
  10. mysql tungsten_通过tungsten replicator实现mysql多主一从的备份架