# Object - FTP 文件传输

## `FTP`

声明：class

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 创建 生成 构造函数 实例化 new 列表 通配符 -->

下列范例使用本机 `127.0.0.1:42121` 的临时 FTP 测试服务

测试账号为 `tsl_user` 和 `tsl_pass`，测试结束后应清空服务根目录

### `create()`

声明：function

无参数构造函数。创建 FTP 实例，连接参数由实例属性设置

<!-- tags: Object FTP 文件传输 创建 生成 文件 目录 路径 file 对象 实例 -->

可见性：public

### `create(host)`

声明：function

构造函数。按 host 配置名称读取连接参数并自动连接和登录服务器

<!-- tags: Object FTP 文件传输 创建 生成 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数   | 类型   | 说明                                                             |
| ------ | ------ | ---------------------------------------------------------------- |
| `host` | string | FTP 配置名称。指定后从配置文件读取连接参数并自动连接和登录服务器 |

### `abort()`

声明：function

终止连接

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
echo obj.abort(), "\n";
// 输出：0
```

### `changeDir(a_dir_name)`

声明：function

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数         | 类型   | 说明                               |
| ------------ | ------ | ---------------------------------- |
| `a_dir_name` | string | string，字符串类型，要切换到的目录 |

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.makeDir("tsl-change-dir");
echo obj.changeDir("tsl-change-dir"), "\n";
echo obj.retrieveCurrentDir, "\n";
obj.changeDirUp();
obj.removeDir("tsl-change-dir");
obj.abort();
// 输出：
// 0
// /tsl-change-dir/
```

### `changeDirUp()`

声明：function

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.makeDir("tsl-change-dir-up");
obj.changeDir("tsl-change-dir-up");
echo obj.changeDirUp(), "\n";
echo obj.retrieveCurrentDir, "\n";
obj.removeDir("tsl-change-dir-up");
obj.abort();
// 输出：
// 0
// /
```

### `connect()`

声明：function

打开FTP连接

<!-- tags: Object FTP 文件传输 打开 open 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
echo obj.connect(), "\n";
obj.abort();
// 输出：0
```

### `crc(file_name, start_point, end_point)`

声明：function

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

<!-- tags: Object FTP 文件传输 计算 求解 文件 目录 路径 file 对象 实例 CRC -->

可见性：public

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

返回：int64

### `delete(file_name)`

声明：function

删除FTP服务器上的文件

<!-- tags: Object FTP 文件传输 删除 移除 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-delete.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-delete.txt", false);
echo obj.delete("tsl-ftp-delete.txt"), "\n";
obj.abort();
fileDelete("", filename);
// 输出：0
```

### `disconnectNotifyPeer()`

声明：function

断开并且通知服务器

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

### `fileDate(file_name, s_gmt)`

声明：function

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：datetime

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-date.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-date.txt", false);
echo obj.fileDate("tsl-ftp-date.txt", false) > 0, "\n";
obj.delete("tsl-ftp-date.txt");
obj.abort();
fileDelete("", filename);
// 输出：1
```

### `get(source_file, dest, resume)`

声明：function

获取从FTP服务器上下载文件

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

#### 示例

```tsl
source_file := "/data/workspace/tmp/tsl-ftp-get-source.txt";
dest_file := "/data/workspace/tmp/tsl-ftp-get-dest.txt";
pos := 0;
writeFile(rwRaw(), "", source_file, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", source_file);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-get.txt", false);
dest := new TMemoryStream();
echo obj.get("tsl-ftp-get.txt", dest, false), "\n";
dest.position := 0;
dest.saveToFile("", dest_file);
obj.delete("tsl-ftp-get.txt");
obj.abort();
echo fileExists("", dest_file), "\n";
fileDelete("", source_file);
fileDelete("", dest_file);
// 输出：
// 0
// 1
```

### `help(help_contents, command)`

声明：function

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 HELP -->

可见性：public

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

返回：any

### `isServerMDTZAndListTForm()`

声明：function

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

<!-- tags: Object FTP 文件传输 判断 检查 文件 目录 路径 file 对象 实例 MDTM -->

可见性：public

返回：boolean

### `list(dest, specifier, details)`

声明：function

列出 FTP 服务器当前目录中匹配 specifier 的文件或目录

<!-- tags: Object FTP 文件传输 列出 列表 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数        | 类型        | 说明                                               |
| ----------- | ----------- | -------------------------------------------------- |
| `dest`      | TStringList | 接收文件或目录列表的字符串列表                     |
| `specifier` | string      | 当前目录下的目录名称、文件名或通配符，例如 `*.txt` |
| `details`   | boolean     | 是否返回包含大小、修改时间和权限等信息的详细列表   |

返回：any

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-list.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-list.txt", false);
files := new TStringList();
obj.list(files, "*.txt", true);
echo files.count > 0, "\n";
obj.delete("tsl-ftp-list.txt");
obj.abort();
fileDelete("", filename);
// 输出：1
```

### `login()`

声明：function

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

<!-- tags: Object FTP 文件传输 连接 登录 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
echo obj.login(), "\n";
echo obj.retrieveCurrentDir, "\n";
obj.abort();
// 输出：
// 0
// /
```

### `makeDir(dir_name)`

声明：function

在FTP服务器上创建目录

<!-- tags: Object FTP 文件传输 创建 生成 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数       | 类型   | 说明                         |
| ---------- | ------ | ---------------------------- |
| `dir_name` | string | 字符串类型，要创建的目录名称 |

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
echo obj.makeDir("tsl-make-dir"), "\n";
obj.removeDir("tsl-make-dir");
obj.abort();
// 输出：0
```

### `noop()`

声明：function

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 KEEP ALIVE NOOP -->

可见性：public

返回：any

### `put(source, dest_file, append)`

声明：function

上传文件到FTP服务器

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-put.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
echo obj.put(source, "tsl-ftp-put.txt", false), "\n";
obj.delete("tsl-ftp-put.txt");
obj.abort();
fileDelete("", filename);
// 输出：0
```

### `quit()`

声明：function

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

<!-- tags: Object FTP 文件传输 关闭 close 文件 目录 路径 file 对象 实例 -->

可见性：public

返回：any

### `quote(command)`

声明：function

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数      | 类型   | 说明                        |
| --------- | ------ | --------------------------- |
| `command` | string | 字符串类型，要执行的FTP命令 |

返回：integer

### `reInitialize(delay)`

声明：function

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

<!-- tags: Object FTP 文件传输 清除 重置 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数    | 类型    | 说明               |
| ------- | ------- | ------------------ |
| `delay` | integer | 整数类型，延后时间 |

返回：integer

### `removeDir(dir_name)`

声明：function

移除FTP服务器上的目录

<!-- tags: Object FTP 文件传输 删除 移除 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

#### 示例

```tsl
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.makeDir("tsl-remove-dir");
echo obj.removeDir("tsl-remove-dir"), "\n";
obj.abort();
// 输出：0
```

### `rename(source_file, dest_file)`

声明：function

重命名FTP服务器指定文件

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数          | 类型   | 说明                 |
| ------------- | ------ | -------------------- |
| `source_file` | string | 字符串类型，源文件名 |
| `dest_file`   | string | 字符串类型，新文件名 |

返回：any

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-rename.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-old.txt", false);
echo obj.rename("tsl-ftp-old.txt", "tsl-ftp-new.txt"), "\n";
obj.delete("tsl-ftp-new.txt");
obj.abort();
fileDelete("", filename);
// 输出：0
```

### `resumeSupported()`

声明：function

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 REST -->

可见性：public

返回：boolean

### `setCmdOpt(cmd, options)`

声明：function

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

<!-- tags: Object FTP 文件传输 设置 修改 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

### `setLang(lang_tag)`

声明：function

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

<!-- tags: Object FTP 文件传输 设置 修改 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

### `setModTime(file_name, local_time)`

声明：function

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

<!-- tags: Object FTP 文件传输 设置 修改 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

### `setModTimeGMT(file_name, gmt_time)`

声明：function

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

<!-- tags: Object FTP 文件传输 设置 修改 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

### `site(command)`

声明：function

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

<!-- tags: Object FTP 文件传输 发送 提交 文件 目录 路径 file 对象 实例 -->

可见性：public

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

返回：any

### `size(file_name)`

声明：function

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

| 参数        | 类型 | 说明      |
| ----------- | ---- | --------- |
| `file_name` | any  | file_name |

返回：int64

#### 示例

```tsl
filename := "/data/workspace/tmp/tsl-ftp-size.txt";
pos := 0;
writeFile(rwRaw(), "", filename, pos, 5, "hello");
source := new TMemoryStream();
source.loadFromFile("", filename);
source.position := 0;
obj := new FTP();
obj.host := "127.0.0.1";
obj.port := 42121;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.passive := true;
obj.connect();
obj.login();
obj.put(source, "tsl-ftp-size.txt", false);
echo obj.size("tsl-ftp-size.txt"), "\n";
obj.delete("tsl-ftp-size.txt");
obj.abort();
fileDelete("", filename);
// 输出：5
```

### `status(status_list)`

声明：function

实现FTP的STAT命令

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 STAT -->

可见性：public

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

返回：any

### `Account`

声明：property

获取或设置代表连接到远程FTP服务器的账户信息

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read/write

### `AUTHCmd`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 AUTH -->

可见性：public

类型：TAuthCmd

访问：read/write

### `AutoIssueFEAT`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 FEAT -->

可见性：public

类型：boolean

访问：read/write

### `AutoLogin`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read/write

### `CanResume`

声明：property

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

<!-- tags: Object FTP 文件传输 判断 检查 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read

### `CurrentTransferMode`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：any

访问：read/write

### `DataPort`

声明：property

获取或设置与客户端会话的数据通道绑定的端口号

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `DataPortMax`

声明：property

获取或设置FTP客户端数据通道的端口号上限

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `DataPortMin`

声明：property

获取或设置FTP客户端数据通道的端口号下限

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `DirFormat`

声明：property

表示目录列表结构

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read

### `ExternalIP`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 NAT PORT EPRT -->

可见性：public

类型：string

访问：read/write

### `Host`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 IP -->

可见性：public

类型：string

访问：read/write

### `LangsSupported`

声明：property

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

<!-- tags: Object FTP 文件传输 返回 获取 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：TStringList

访问：read

### `LastCmdResult`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：TStringList

访问：read

### `ListenTimeout`

声明：property

获取或设置侦听成功的超时时间

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `ListResult`

声明：property

获取最后一条LIST命令的返回

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 LIST -->

可见性：public

类型：TStringList

访问：read

### `Passive`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read/write

### `PassiveUseControlHost`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 HOST IP -->

可见性：public

类型：boolean

访问：read/write

### `Password`

声明：property

获取或设置登陆FTP服务器时用于认证的凭据

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read/write

### `Port`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `ProxyHost`

声明：property

获取或设置FTP代理的主机IP或名称

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 IP -->

可见性：public

类型：string

访问：read/write

### `ProxyPassword`

声明：property

获取或设置FTP代理服务器的登陆密码

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read/write

### `ProxyPort`

声明：property

获取或设置FTP代理服务器的端口号

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 CONNECT USER SITE -->

可见性：public

类型：integer

访问：read/write

### `ProxyUsername`

声明：property

获取或设置FTP代理服务器的登陆用户名

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read/write

### `ReadTimeout`

声明：property

获取或设置客户端等待FTP连接响应时间的毫秒数

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `RetrieveCurrentDir`

声明：property

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read/write

### `SupportsVerification`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read

### `SystemDesc`

声明：property

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：string

访问：read

### `TransferMode`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 MODE -->

可见性：public

类型：integer

访问：read/write

### `TransferTimeout`

声明：property

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

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：integer

访问：read/write

### `TransferType`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 ASCII -->

可见性：public

类型：integer

访问：read/write

### `TryNATFastTrack`

声明：property

获取或设置指定是否使用"快速路径"连接穿越防火墙和地址转换器（NAT）

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 NAT -->

可见性：public

类型：any

访问：read/write

### `UseCCC`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 CCC -->

可见性：public

类型：boolean

访问：read/write

### `UseExtensionDataPort`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 IPV6 PASV -->

可见性：public

类型：boolean

访问：read/write

### `UseMLIS`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 MLST MLSD -->

可见性：public

类型：boolean

访问：read/write

### `Username`

声明：property

获取或设置登陆FTP服务器时使用的身份验证ID

<!-- tags: Object FTP 文件传输 获取 查询 文件 目录 路径 file 对象 实例 ID -->

可见性：public

类型：string

访问：read/write

### `UseSTARTTLS`

声明：property

控制是否使用显式 TLS（即 STARTTLS 加密协议）

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 TLS STARTTLS -->

可见性：public

类型：boolean

访问：read/write

### `UseTLS`

声明：property

用于指定传输安全等级

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read/write

### `UsingExtDataPort`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 RFC NAT -->

可见性：public

类型：boolean

访问：read

### `UsingNATFastTrack`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：boolean

访问：read

### `UsingSFTP`

声明：property

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

<!-- tags: Object FTP 文件传输 文件 目录 路径 file 对象 实例 -->

可见性：public

类型：any

访问：read
