ftp dir 命令的输出结构在特定的 Windows IIS 服务器上有所不同

ftp dir 命令的输出结构在特定的 Windows IIS 服务器上有所不同

我们在产品中使用 FTP 已经很长时间了。多年来,我们没有遇到任何问题。

我们的代码期望列的输出如下:

ftp> dir
200 Port command successful
150 Opening data channel for directory listing of "/"
-r--r--r-- 1 ftp ftp            177 Feb 03  2014 CEA2 file1
-r--r--r-- 1 ftp ftp            121 Feb 11  2014 CEA2 file2

我们的代码使用这个:

fsize = atol(ftp_entry[4])

上周我们有一位客户使用 Windows NT,由于第 5 列 [4] 是输出中的文件名,因此系统崩溃了:

ftp> dir
227 Entering Passive Mode
125 Data connection already open; Transfer starting.
10-28-20 12:54 PM 321450029 file1

这是正常输出吗?为什么 Windows NT 的输出不同?这是预料之中的吗?我在 NT 文档中找不到任何相关示例。

有什么方法可以将输出更改为与 Linux/Windows 相同?

答案1

IIS 支持两种不同格式的目录列表,操作系统UNIX。您的代码需要UNIX格式。但该服务器配置为使用操作系统格式。

要切换到UNIX格式,在 IIS 管理器中,在站点面板中转到FTP > FTP 目录浏览 > 目录列表样式 > UNIX

在此处输入图片描述

但请注意,此更改可能会破坏其他依赖 MS-DOS 格式的应用程序。

相关内容