1

我正在使用方法 listFiles(dirname) 在该实例上创建一个 FTPClient & 实例。

FTPClient ftpClient = new FTPClient();
ftpClient.connect("my-server-ip-address");
ftpClient.setConnectTimeout(20000);
ftpClient.enterLocalPassiveMode();
ftpClient.login("myUser", "myPswd");
ftpClient.setKeepAlive(true);
final FTPFile[] listedFiles = ftpClient.listFiles(dirname);

此 listFile() 操作引发异常“java.io.IOException:无法确定系统类型 - 响应:500 SYST 未实现”

但是,当我在使用 FTPClientConfig 调用 ftpClient 对象上的连接之前将 SYST 类型设置为 UNIX 时,如下所示

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
ftpClient.configure(conf);

然后抛出 SocketTimeoutException

java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) [rt.jar:1.7.0_10]
at java.net.SocketInputStream.read(SocketInputStream.java:150) [rt.jar:1.7.0_10]

FTP 服务器在 SUSE Linux Enterprise Server 10 (x86_64) 上运行。

是否需要进行更多配置才能成功列出 FTP 服务器中的文件。

我在这里先向您的帮助表示感谢。

4

0 回答 0