DELPHI IDFTP
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:(网络故障超时不好用,需要同时设置这个属性)
原型为
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的更多相关文章
- Delphi IDFtp用法,包含断点续传
1 连接远程服务器procedure Connect(AAutoLogin: boolean; const ATimeout: Integer);2 改变目录procedure ChangeDir ...
- Delphi:Indy9的IdFTP完全使用
Delphi 7自带的INDY控件,其中包含了IdFTP,可以方便的实现FTP客户端程序,参考自带的例子,其中有上传.下载.删除文件,但是不包含对文件夹的操作,得自己实现上传.下载.删除整个文件夹(带 ...
- Delphi完成的断点续传例子 转
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- [转]Delphi 快捷键 让你更像高手!!
新一篇: IDFTP 控件使用 >>代码模板 : CTRL+J >>代码整块移动 : CTRL+SHIFT+I(右移) CTRL+SHIFT+U(左移)>>选中窗体 ...
- delphi 7 求无码
我们知道delphi很多源码,都是没有提供的,比如BDE,一旦有问题,我们也找不到办法解决,那么那些dcu对应的pas是没有公布的呢?笔者做了个统计. 下面是delphi7 的,如果你的程序有用到没有 ...
- Idftp.DirectoryListing 里面的内容为什么会是空的呢?(转)
最近在项目中要用到FTP上传,用的是delphi的IdFTP控件,用IdFtp.List(list),发现List里面有内容,可 是到IdFtp.DirectoryListing.Items[iCou ...
- Delphi - 创建SuperDll 持续更新
Delphi SuperDll 作为一名5年的Delpher,一直认为Delphi是桌面应用的王者,我相信其他的Delpher也这么认为. 但是,慢慢的我发现普通方式的Delphi开发会造成代码的严重 ...
- delphi 多线程3
多线程程序设计 我们知道,win95或winNT都是“多线程”的操作系统,在DELPHI .中,我们可以充分利用这一特性,编写出“多线程”的应用程序. 对以往在DOS或16位windows下写程序的 ...
- 学习笔记:7z在delphi的应用
最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看 ...
随机推荐
- Pycharm+Django+Python+MySQL开发 后台管理数据库
Django框架十分简单易用,适合搭建个人博客网站.网上有很多教程,大多是关于命令行操作Django,这里分享一些用最新工具进行Django开发过程,主要是PyCharm太强大,不用有点可惜. 第一次 ...
- NGUI利用深度测试实现新手引导遮罩
实现原理:实际上就是先利用渲染队列渲染,然后再利用ZTest,改变渲染的遮挡关系. PS:Depth Testing:深度测试,也叫深度缓冲.只有最靠近观察者的物体会被绘制.深度即Z,该值越小表示离观 ...
- [转]Git分支管理策略
如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...
- postgresql update from
1,update from 关联表的更新 update table a set name=b.name from table B b where a.id=b.id; update test ...
- 新建 vue项目时报错,无法成功搭建项目
之前电脑已经安装 Node环境和 vue-cli脚手架,但是过段时间没有使用,然后现在用 vue-cli 搭建项目的时候,启动服务器的时候报错,无法启动成功,摸索半天,发现是因为 Node和vue-c ...
- 「Python调试器」,快速定位各种疑难杂症!!
现在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要 ...
- [转]解决右键用notepad++打开提示【ShellExecute failed (2): Is this command Correct? (Fix) 】
最近发现右键使用notepad++打开文件时提示如下错误: ShellExecute failed (2): Is this command Correct? ... 经用搜索引擎搜索得知,应该是开启 ...
- thinkphp5中extend的使用?
1.创建处理数组的类ArrayList.php <?php /** * ArrayList实现类 * @author liu21st <liu21st@gmail.com> */ c ...
- JS如何禁用浏览器的退格键
<script type="text/javascript"> //处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 function forb ...
- Linux从入门到适应(四):Ubuntu 16.04环境下,安装Nvidia驱动,cuda9.2和 cudnn
在安装深度学习框架之前,cuda和cudnn是必须要提前安装的,现在按照流程而nvidia驱动的版本和cuda版本有这一些对应关系,所以需要按照版本进行安装,现在说一下如何安装: 1 安装nvidia ...