如何使用Apache Commons FTPClient进行远程目录列表?

时间:2013-03-24 16:25:05

标签: java ftp ftp-client apache-commons-net suse

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

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对象上的connect之前将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服务器中的文件。

感谢您的帮助。

0 个答案:

没有答案