Files
playbook/skills/tsl-api-reference/references/codegen/builtin/object/ftp.md
T
csh 9010829c6d feat(tsl-api-reference): expand and reorganize api catalog
Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references.

Keep the existing generated index without rebuilding after signature normalization.
2026-08-10 18:26:24 +08:00

20 KiB
Raw Blame History

Object - FTP 文件传输

FTP

声明:class

用于连接和登录 FTP 服务器,并管理远程目录、传输文件及发送服务器命令

create(host)

声明:function

创建 FTP 实例

可见性:public

参数 类型 说明
host string 可选。字符串类型。如果指定了Host参数,会自动从配置文件中获取对应设置,自动连接并登录服务器

abort()

声明:function

终止连接

可见性:public

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
obj.connect();//连接服务器
obj.login();//登录服务器
return obj.Abort();
//终止连接成功,返回0

changeDir(a_dir_name)

声明:function

改变FTP服务器上的当前目录

可见性:public

参数 类型 说明
a_dir_name string string,字符串类型,要切换到的目录

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
obj.connect();//连接
obj.login();//登录
obj.changedir('/test');//将FTP服务器上的当前目录更改为"/test"
return obj.RetrieveCurrentDir();
//修改成功,当前目录应为"/test"

changeDirUp()

声明:function

切换到FTP服务器上当前目录的父目录

可见性:public

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
obj.connect();//连接
obj.login();//登录
obj.changedir('/test');//将FTP服务器上的当前目录更改为"/test"
obj.changeDirUp();//跳转到当前目录的上一级目录"/"
return obj.RetrieveCurrentDir();
//跳转成功,当前目录应为"/"

connect()

声明:function

打开FTP连接

可见性:public

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
return obj.connect();
//连接成功,返回0

crc(file_name, start_point, end_point)

声明:function

计算FTP服务器上指定文件的CRC值。需要FTP服务器支持XCRC功能

可见性:public

参数 类型 说明
file_name string 字符串类型,指定的文件名
start_point int64 整数类型,计算CRC值的文件其实位置,默认为0
end_point int64 整数类型,计算CRC值的文件末尾位置,默认为0,当指定为0时,EndPoint认为是文件长度

返回:int64

delete(file_name)

声明:function

删除FTP服务器上的文件

可见性:public

参数 类型 说明
file_name string 字符串类型,指定要删除的文件的名称

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
//删除Test.txt文件
obj.delete("Test.txt");
//验证文件是否被删除
return obj.FileDate("Test.txt",0);
//获取文件时间,若无该文件,返回0

disconnectNotifyPeer()

声明:function

断开并且通知服务器

可见性:public

返回:any

fileDate(file_name, s_gmt)

声明:function

获得FTP服务器上文件的修改时间

可见性:public

参数 类型 说明
file_name string 字符串类型,指定要获得修改时间的文件的名称
s_gmt boolean 布尔类型,指定返回的时间是否为格林尼治时间标准时间

返回:datetime

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
ret:= obj.FileDate("Test.txt",0);
return DateTimeToStr(ret);
//"2024-07-31 14:28:00"

get(source_file, dest, resume)

声明:function

从FTP服务器上下载文件

可见性:public

参数 类型 说明
source_file string 执行FTP上要下载的源文件名称
dest TSLObj TStream类型,下载文件的目标流对象。参考 TFileStream对象
resume boolean 当设置为真实支持断点续传,否则重新下载文件

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
obj.TryNATFastTrack := 1;
//下载文件
st := new TFileStream("","D:\\test\\1.txt",65535);
obj.get("FtpTest.txt",st,0);
//若下载成功,可在本机对应位置查看文件

help(help_contents, command)

声明:function

获得FTP服务器命令以及其他帮助信息,使用FTP的HELP命令。必须在登陆连接后才可以使用Help函数

可见性:public

参数 类型 说明
help_contents TStringList 字符串类型,用于返回服务器的执行状态信息
command string 可选。字符串类型,用于请求具体的命令的帮助信息,如HELP SITE

返回:any

isServerMDTZAndListTForm()

声明:function

指出FTP服务器是否支持FTP MDTM和LIST-T 命令

可见性:public

返回:boolean

list(dest, specifier, details)

声明:function

从FTP服务器上下载文件

可见性:public

参数 类型 说明
dest TStringList 字符串列表类型,当前目录的文件和目录列表
specifier string 字符串类型,当前目录下的目录名称或要列出的文件通配符(如’.,A.txt’等)
details boolean 布尔类型,是否返回详细的列表信息,包括文件大小,修改日期和文件所有者权限,组等

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
AFiles := new TStringList();
//获取当前目录所有.txt文件信息
obj.List(AFiles,'*.txt',true);
return AFiles.GetText();
//字符串:
"-rw-r--r--  1 1001   1001      17 Apr 09 16:07 test01.txt
-rw-r--r--  1 1001   1001      0 Sep 16 2023 test02.txt
-rw-r--r--  1 1001   1001      38 Jul 25 17:26 test03.txt"

login()

声明:function

提供FTP连接的验证,此前必须制定Username和Password属性

可见性:public

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
return obj.RetrieveCurrentDir();
//获取当前所在目录,若登录成功,则返回"/"

makeDir(dir_name)

声明:function

在FTP服务器上创建目录

可见性:public

参数 类型 说明
dir_name string 字符串类型,要创建的目录名称

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
obj.MakeDir("newDir");
//若创建成功,可在服务器中查看或使用FAQ:List 查看

noop()

声明:function

向FTP服务器发送一个KEEP-ALIVE信号。服务器在长时间处于空闲状态下,使用NOOP方法可以防止服务器关闭连接

可见性:public

返回:any

put(source, dest_file, append)

声明:function

上传文件到FTP服务器

可见性:public

参数 类型 说明
source TStream 流对象类型,包含要上传的数据
dest_file string 字符串类型,远程服务器的目标文件名
append boolean 布尔类型,为真时,服务器将上传到数据从已存在的文件末尾写入

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
//构造TStream对象
filepath := "D:\\test\\Test.txt";
st := new TMemoryStream();
st.LoadFromFile("",filepath);
obj.Put(st,"put.txt",false);
//若上传成功,可在服务器中查看或使用FAQ:Get 下载后在本机查看

quit()

声明:function

关闭FTP客户端连接。Quit用于文件未传输时关闭连接,如果一个文件传输进程正在进行,请优先使用Abort()

可见性:public

返回:any

quote(command)

声明:function

用于执行在这个类中未实现的FTP命令

可见性:public

参数 类型 说明
command string 字符串类型,要执行的FTP命令

返回:integer

reInitialize(delay)

声明:function

清除FTP客户端的账户及其设置信息

可见性:public

参数 类型 说明
delay integer 整数类型,延后时间

返回:integer

removeDir(dir_name)

声明:function

移除FTP服务器上的目录

可见性:public

参数 类型 说明
dir_name string 字符串类型,FTP服务器上要移除的目录名称

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
obj.Remove("testDir");
//若删除成功,可在服务器中查看或使用FAQ:List 查看

rename(source_file, dest_file)

声明:function

重命名FTP服务器指定文件

可见性:public

参数 类型 说明
source_file string 字符串类型,源文件名
dest_file string 字符串类型,新文件名

返回:any

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
obj.rename("testDir","newDir");
//若重命名成功,可在服务器中查看或使用FAQ:List 查看

resumeSupported()

声明:function

指出服务器上是否支持REST命令

可见性:public

返回:boolean

setCmdOpt(cmd, options)

声明:function

指定一个在FTP命令之后的行为

可见性:public

参数 类型 说明
cmd string 字符串类型,受到Options影响的命令
options string 字符串类型,应用于FTP 会话的选项

返回:any

setLang(lang_tag)

声明:function

请求以指定的语言返回响应的内容

可见性:public

参数 类型 说明
lang_tag string 字符串类型,FTP客户端的语言标记

返回:any

setModTime(file_name, local_time)

声明:function

设置指定文件的最后修改时间

可见性:public

参数 类型 说明
file_name string 字符串类型,服务器上更新的文件名
local_time datetime 时间类型,指定文件修改的时间值

返回:any

setModTimeGMT(file_name, gmt_time)

声明:function

设置指定文件的最后修改时间

可见性:public

参数 类型 说明
file_name string 字符串类型,服务器上更新的文件名
gmt_time datetime 时间类型,指定文件修改的时间值

返回:any

site(command)

声明:function

发送一个FTP服务器端的命令

可见性:public

参数 类型 说明
command string 字符串类型,FTP服务器端命令名称。常常用来发发送没有包含在FTP协议中的服务器端命令。可以用HELP SITE命令查找指定FTP服务器的命令和语法信息

返回:any

size(file_name)

声明:function

获得服务器上文件的大小信息

可见性:public

参数 类型 说明
file_name any file_name

返回:int64

示例

obj := CreateObject("FTP");
obj.host := "ftp.tinysoft.com.cn";
obj.port := 20;
obj.username := username;
obj.password := password;
//连接FTP服务器
obj.connect();
//登录
obj.Login();
return obj.Size("test.txt");
//整数,18

status(status_list)

声明:function

实现FTP的STAT命令

可见性:public

参数 类型 说明
status_list TStringList 字符串列表类型,服务器响应的连接、传输参数等状态

返回:any

Account

声明:property

代表连接到远程FTP服务器的账户信息

可见性:public

类型:string

访问:read/write

AUTHCmd

声明:property

表示登陆验证时使用的机制。这个属性的值决定在TSL握手协议中与FTP AUTH命令交换时使用的参数

可见性:public

类型:TAuthCmd

访问:read/write

AutoIssueFEAT

声明:property

是否自动发送FEAT指令获得所支持的命令

可见性:public

类型:boolean

访问:read/write

AutoLogin

声明:property

指定当使用Connect方法与FTP服务器建立会话时,FTP客户端是否自动连接

可见性:public

类型:boolean

访问:read/write

CanResume

声明:property

表示服务器是否支持续传操作

可见性:public

类型:boolean

访问:read

CurrentTransferMode

声明:property

表示当前FTP数据交换中有效的传输模式设置

可见性:public

类型:any

访问:read/write

DataPort

声明:property

与客户端会话的数据通道绑定的端口号

可见性:public

类型:integer

访问:read/write

DataPortMax

声明:property

FTP客户端数据通道的端口号上限

可见性:public

类型:integer

访问:read/write

DataPortMin

声明:property

FTP客户端数据通道的端口号下限

可见性:public

类型:integer

访问:read/write

DirFormat

声明:property

表示目录列表结构

可见性:public

类型:string

访问:read

ExternalIP

声明:property

指定当客户端在一个NAT防火墙后发送PORT或者EPRT命令时使用的IP地址

可见性:public

类型:string

访问:read/write

Host

声明:property

表示FTP服务器的IP地址或者主机名称

可见性:public

类型:string

访问:read/write

LangsSupported

声明:property

返回服务器支持的语言列表

可见性:public

类型:TStringList

访问:read

LastCmdResult

声明:property

最后一条命令的返回结果,包括命令返回状态字以及结果

可见性:public

类型:TStringList

访问:read

ListenTimeout

声明:property

侦听成功的超时时间

可见性:public

类型:integer

访问:read/write

ListResult

声明:property

最后一条LIST命令的返回

可见性:public

类型:TStringList

访问:read

Passive

声明:property

指定FTP的数据通道连接方法,如果为真则采用被动模式

可见性:public

类型:boolean

访问:read/write

PassiveUseControlHost

声明:property

如果设置为假,被动模式下依旧使用FTP的HOST属性,如果为真,则使用被动连接过来的对端IP地址。简单来说,如果设置为真,则允许分布式FTP服务,也就是对端可能是多个IP地址的FTP来发送或者接受数据

可见性:public

类型:boolean

访问:read/write

Password

声明:property

登陆FTP服务器时用于认证的凭据

可见性:public

类型:string

访问:read/write

Port

声明:property

用于在打开连接时用到的远程FTP服务器主机上指定的端口号

可见性:public

类型:integer

访问:read/write

ProxyHost

声明:property

FTP代理的主机IP或名称

可见性:public

类型:string

访问:read/write

ProxyPassword

声明:property

FTP代理服务器的登陆密码

可见性:public

类型:string

访问:read/write

ProxyPort

声明:property

FTP代理服务器的端口号

可见性:public

类型:integer

访问:read/write

ProxyType

声明:property

指定连接代理服务器时使用的方法。 0:使用代理服务器的CONNECT命令直接连接 1:采用USER命令,发送USER user@hostname串进行登录。 2:登录时发送SITE命令 3:发送OPEN命令 4:使用USER,PASS命令发送代理服务器的用户名密码,发送USER user@firewalluser@hostname 和 PASS pass@firewallpass 5:先使用USER,PASS命令使用代理服务器的用户名密码,穿透代理服务器,然后使用目标的用户名和密码 6:采用USER hostuserId@hostname firewallUsername模式。 7: Novell BorderManager Proxy

可见性:public

类型:integer

访问:read/write

ProxyUsername

声明:property

FTP代理服务器的登陆用户名

可见性:public

类型:string

访问:read/write

ReadTimeout

声明:property

客户端等待FTP连接响应时间的毫秒数

可见性:public

类型:integer

访问:read/write

RetrieveCurrentDir

声明:property

获得服务器上当前目录的名称

可见性:public

类型:string

访问:read/write

SupportsVerification

声明:property

表示FTP服务器是否支持完整性验证的扩展功能

可见性:public

类型:boolean

访问:read

SystemDesc

声明:property

远程FTP服务器的操作系统的描述信息

可见性:public

类型:string

访问:read

TransferMode

声明:property

实现FTP的MODE命令,设置FTP的传输模式,0为非压缩格式,1为压缩格式

可见性:public

类型:integer

访问:read/write

TransferTimeout

声明:property

FTP客户端在数据通道进行读操作时的等待时间的毫秒数

可见性:public

类型:integer

访问:read/write

TransferType

声明:property

指定传输类型,包括Binary(0)和ASCII(1),默认使用Binary方式进行传输

可见性:public

类型:integer

访问:read/write

TryNATFastTrack

声明:property

指定是否使用“快速路径”连接穿越防火墙和地址转换器(NAT)

可见性:public

类型:any

访问:read/write

UseCCC

声明:property

表示FTP客户端是否需要使用清除通道命令(CCC)

可见性:public

类型:boolean

访问:read/write

UseExtensionDataPort

声明:property

指示在数据交换时是否使用了额外的IPV6端口以及是否设置为PASV模式

可见性:public

类型:boolean

访问:read/write

UseMLIS

声明:property

指定当客户端试图获得目录列表时是否使用应该使用FTP的MLST或MLSD命令

可见性:public

类型:boolean

访问:read/write

Username

声明:property

登陆FTP服务器时使用的身份验证ID

可见性:public

类型:string

访问:read/write

UseSTARTTLS

声明:property

是否使用显式 TLS(即 STARTTLS 加密协议)

可见性:public

类型:boolean

访问:read/write

UseTLS

声明:property

用于指定传输安全等级

可见性:public

类型:boolean

访问:read/write

UsingExtDataPort

声明:property

表示客户端会话是否支持RFC 2428 NAT 扩展

可见性:public

类型:boolean

访问:read

UsingNATFastTrack

声明:property

表示客户端会话是否使用了“快速路径”连接

可见性:public

类型:boolean

访问:read

UsingSFTP

声明:property

表示客户端会话是否使用了安全FTP连接

可见性:public

类型:any

访问:read