FTP是一个标准协议,它是在计算机和网络之间交换文件的最简单的方法。

FTP也是应用TCP/IP协议的应用协议标准。
FTP通常于将作者的文件上传至服务器,或从服务器上下传文件的一种普遍的使用方式作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的软件(如FLASHFXP)来对服务器的数据进行删除,重命名等操作。 
当然,使用这些之前,必须先要登录服务器,用指定的用户名和密码或匿名(Anonymous)登录。 
这些大家都知道,不过还是讲一下。用DOS操作FTP我不讲了。我今天主要用INDY组件里的IDFTP控件做一FTP客户端软件(非常简单 ) 了 
我现在讲一下IDFTP控件的几个属性如下: 
Host:FTP服务器地址。
USER:用户帐号。
Password:密码。
Passive:用于控制FTP数据连接方法。FTP的数据传输可以有主动和被动。
PORT是主动模式,在建立数据通道时,服务端去连接别人;
PASV是被动模式,在建立数据通道时,服务端被别人连接;
建立数据通道时,用PORT模式还是PASV模式,选择权在于FTP客户端。
IDFTP里的passive是一个Boolean数据类型。当True时为主动;当false时为被动。
Port:FTP服务的默认端口是21。
TransferType:传输文件的类型,可以取值为FtBinary(8位的任意文件)和FtAscii(7位的文本文件)。
SystemDesc:FTP服务器的描述。 
IDFTP的几个方法
常用的方法有以下几个:
Connect:连接FTP服务器.
Abort:停止FTP服务的操作。
Quit:关闭客户端与服务器的连接.
Noop:用于保持连接的命令,防止被服务器关掉连接.
List:获取FTP服务器上的文件和目录列表.
ReadTimeout:(网络故障超时不好用,需要同时设置这个属性)

ConnectTimeout:超时(默认:20000,单位:毫秒)
原型为
procedure List(ADest:TStrings;Const ASpecifier:String;const ADetails:Boolean);
RetrieveCurrentDir:取得当前目录的名称.
Site:发送FTP服务器的命令.
原型为:
procedure Site(const ACommand:string);
ChangeDir:改变FTP服务器上的当前目录
原型为: procedure ChangeDir(const ADirName:string);
ChangeDirUp:将FTP服务器上的目录返回到你目录. 
温州-Dillon(86695893) 13:08:26
MakeDir:在服务器上建立一个新目录.
原型为:
procedure MakeDir(const ADirName:String);
RemoveDir:删除服务器上的一个目录.
原型为:
procedure RemoveDir(const ADirName:string);
Get:从FTP服务器上下载文件.这个方法被重载了.
原型为:
procedure Get(const ASourceFile:string;ADest:TStream);overload;
procedure Get(const ASourceFile:string;const ADest:string;ACanOverWrite:Boolean);overload;
Put:用于向服务器上传文件.该方法被重载.
原型为:
procedure Put(const ASourceFile:TStream;const ADest:string;const Appand:Boolean);overload;
procedure Put(const ASourceFile:string;const ADest:string;const AAppand:Boolean);overload;
KillDataChannal:关闭FTP数据通道.
所谓“重载”,就是当从多个“类”身上继承一些方法时,会发生冲突。为了避免这一个冲突,就使用了“重载”功能 
Delete:删除FTP服务器上一个文件.
原形为:procedure Delete(const AfileName:string);
Rename:更改服务器上的文件名.
原型为:
procedure Rename(const ASourceFile:string;const ADestFile:string);
Size:获取文件大小信息.
原型为:
function Size(const AFileName:string):Integer; 
当大家装好INDY9.0 附带一个例程,在INDY\FTPDEMO下可以找到. 
是一个不错的DEMO 
我仿造这个DEMO做的一个例子。里面包含详细的注释。
当然,还要讲一下,做FTP客户端的心得哦 
我现在,慢慢把里面的代码发了来做一下讲解 
首先是登录按钮里的代码: 
还是先给大家看一下这个界面吧 
Delete:删除FTP服务器上一个文件.
原形为:procedure Delete(const AfileName:string);
Rename:更改服务器上的文件名.
原型为:
procedure Rename(const ASourceFile:string;const ADestFile:string);
Size:获取文件大小信息.
原型为:

function Size(const AFileName:string):Integer;

出处: http://blog.csdn.net/superfireware/article/details/8709395

DELPHI IDFTP的更多相关文章

  1. Delphi IDFtp用法,包含断点续传

    1  连接远程服务器procedure Connect(AAutoLogin: boolean; const ATimeout: Integer);2  改变目录procedure ChangeDir ...

  2. Delphi:Indy9的IdFTP完全使用

    Delphi 7自带的INDY控件,其中包含了IdFTP,可以方便的实现FTP客户端程序,参考自带的例子,其中有上传.下载.删除文件,但是不包含对文件夹的操作,得自己实现上传.下载.删除整个文件夹(带 ...

  3. Delphi完成的断点续传例子 转

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  4. [转]Delphi 快捷键 让你更像高手!!

    新一篇: IDFTP 控件使用 >>代码模板 : CTRL+J >>代码整块移动 : CTRL+SHIFT+I(右移) CTRL+SHIFT+U(左移)>>选中窗体 ...

  5. delphi 7 求无码

    我们知道delphi很多源码,都是没有提供的,比如BDE,一旦有问题,我们也找不到办法解决,那么那些dcu对应的pas是没有公布的呢?笔者做了个统计. 下面是delphi7 的,如果你的程序有用到没有 ...

  6. Idftp.DirectoryListing 里面的内容为什么会是空的呢?(转)

    最近在项目中要用到FTP上传,用的是delphi的IdFTP控件,用IdFtp.List(list),发现List里面有内容,可 是到IdFtp.DirectoryListing.Items[iCou ...

  7. Delphi - 创建SuperDll 持续更新

    Delphi SuperDll 作为一名5年的Delpher,一直认为Delphi是桌面应用的王者,我相信其他的Delpher也这么认为. 但是,慢慢的我发现普通方式的Delphi开发会造成代码的严重 ...

  8. delphi 多线程3

     多线程程序设计 我们知道,win95或winNT都是“多线程”的操作系统,在DELPHI .中,我们可以充分利用这一特性,编写出“多线程”的应用程序. 对以往在DOS或16位windows下写程序的 ...

  9. 学习笔记:7z在delphi的应用

    最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看 ...

随机推荐

  1. hihocoder编程练习赛52-3 部门聚会

    思路: 树形dp. 实现: #include <bits/stdc++.h> using namespace std; ; int n, a[MAXN], in[MAXN]; vector ...

  2. iOS---iOS中SQLite的使用

    一.SQLite的使用 采用SQLite数据库来存储数据.SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些.还是一步步来吧! 第一步:导入头文件 需要添加SQLit ...

  3. js获取select选中的标签option的值

      js中获取方法 var obj = document.getElementByIdx_xx_x(”testSelect”); //定位id var index = obj.selectedInde ...

  4. 迅为电子HMI人机界面|CAN总线触摸屏

    本文转自迅为:http://www.topeet.com 协议特色: 1. 支持所有 CAN 协议,例如常用的 J1939 和 CANopen 协议. 2. 提供高度开放的 CAN 帧的编辑界面,用户 ...

  5. 说说windows10自带浏览器Edge的好与不好

    用了10几个月了,正式版也升级了,今天来说说微软自带浏览器microsoft Edge的好与不好       先说好的吧     一,浏览器速度非常快,无论是打开还是关闭,或者是语音助手小娜需要调动浏 ...

  6. 深入理解python对象及属性

    类属性和实例属性首先来看看类属性和类实例的属性在python中如何存储,通过__dir__方法来查看对象的属性 >>> class Test(object): pass>> ...

  7. arcpy利用XY创建点

    # -*- coding: utf-8 -*-"""Created on Sun Apr 7 15:32:24 2019@author: ""&quo ...

  8. chat - 和数据集沟通的指令稿

    总览 SYNOPSIS chat [ options ] script 描述 DESCRIPTION chat 程式在電腦與數據機之間定義溝通交換事宜. 它最主要的目的是用來在點對點協定的隱形程式 ( ...

  9. Js 之图片懒加载插件

    一.PC端(lazyload) 1.引入js文件 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.m ...

  10. source collection list

    1.Anaconda:http://www.cnblogs.com/xiaoming123abc/p/6970890.html https://conda.io/docs/help-support.h ...