.NET FtpWebRequest NLST没有列出目录 - 但LIST确实如此

时间:2016-03-22 21:26:45

标签: .net ftp ftpwebrequest

FTP根内容:

My File 1.txt
Your File 2.txt
Random File 3.txt
Another Random File 4.txt
Folder1
Folder 2
My Folder 3
Your Folder 4

Net.WebRequestMethods.Ftp.ListDirectory结果:

My File 1.txt
Your File 2.txt
Random File 3.txt
Another Random File 4.txt

WebRequestMethods.Ftp.ListDirectoryDe​​tails结果:

drwxrwxrwx   1 user     group           0 Mar 22 11:32 Folder1
drwxrwxrwx   1 user     group           0 Mar 22 11:33 Folder 2
drwxrwxrwx   1 user     group           0 Mar 22 11:33 My Folder 3
drwxrwxrwx   1 user     group           0 Mar 22 11:33 Your Folder 4
-rw-rw-rw-   1 user     group    234003230 Mar 22 14:12 My File 1.txt
-rw-rw-rw-   1 user     group    234003230 Mar 22 14:12 Your File 2.txt
-rw-rw-rw-   1 user     group    234003230 Mar 22 14:12 Random File 3.txt
-rw-rw-rw-   1 user     group    234003230 Mar 22 14:12 Another Random File 4.txt

通常NSLT为我提供了所有内容(包括文件夹)的列表。

NLST只提供了文件夹/文件名,便于从LIST结果中逐字排列日期,文件大小等。

我可以提供代码示例。然而,这似乎可能是FTP设置。只是不确定在哪里看。

1 个答案:

答案 0 :(得分:1)

事实上,有些FTP服务器只在NLST列表中包含文件,例如HPUX ftpd

原因是命令行NLST客户端使用ftp来实现mget命令。典型的mget实现无法递归下载文件(实际上无法判断特定的" name"是目录还是文件)。因此mget失败,如果它在列表中得到一个目录。

虽然行为可以在服务器端配置,但是没有标准的方法可以在客户端控制它。