Java ftp.listFiles()得到一个空数组

时间:2012-03-01 07:54:00

标签: java ftp arraylist

我从ftp.listFiles()获取一个空数组。我试了一下。如果我将Type更改为被动模式,我会得到相同的错误,Array为空。如果我在其他机器上运行代码,问题仍然是相同的。如果我使用Windows FTP客户端(LeechFtp或WIndows命令行),我可以浏览获取目录列表。如果我在没有changeWorkingDirectory-Command的情况下运行代码,我将从ftp root获取文件列表,但是我没有从子目录中获取List。

ftp = new FTPClient();
ftp.setDefaultPort(21);
ftp.connect("ftp.myftpsite.com");
ftp.enterLocalPassiveMode();
ftp.login("username", "password");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.changeWorkingDirectory("pub/inbound");
FTPFile[] files = ftp.listFiles();
System.out.println(files.length);

ftp.changeWorkingDirectory返回TRUE。

1 个答案:

答案 0 :(得分:0)

如果:

  1. 您使用的是旧版本(1.5之前版本)的Apache Commons Net;
  2. 您无法列出的文件包含昨天(2月29日)的时间戳;
  3. 然后你可能遇到了这个错误:FTPClient#listFiles returns null element when file's timestamp is "02/29"

    升级Commons Net会使问题消失。