Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FTPClient.listFiles不工作_Java_Ftp_Apache Commons_Ftp Client_Ftplib - Fatal编程技术网

Java FTPClient.listFiles不工作

Java FTPClient.listFiles不工作,java,ftp,apache-commons,ftp-client,ftplib,Java,Ftp,Apache Commons,Ftp Client,Ftplib,我试图列出ftp服务器中特定目录下的所有文件 FTPFile[] subFiles = ftpClient.listFiles("directory"); 虽然目录是有效的,但是调用listFiles时代码被卡住了,原因可能是什么?此外,我还想指出,一个单独的netbeans项目访问同一个FTP服务器,使用相同的代码可以正常工作,但是一个maven项目存在这个问题。 请帮助。尝试使用。我假设您正在使用最新的库(您没有编写您正在使用的库) 下一种方法是尝试更改文件列表布局。commons库使用

我试图列出ftp服务器中特定目录下的所有文件

FTPFile[] subFiles = ftpClient.listFiles("directory");
虽然目录是有效的,但是调用listFiles时代码被卡住了,原因可能是什么?此外,我还想指出,一个单独的netbeans项目访问同一个FTP服务器,使用相同的代码可以正常工作,但是一个maven项目存在这个问题。 请帮助。

尝试使用。我假设您正在使用最新的库(您没有编写您正在使用的库)


下一种方法是尝试更改文件列表布局。commons库使用自动检测,但在某些情况下这不起作用。您可以更改(并测试)另一个文件列表布局,如下所示:

FTPClientConfig configuration = new FTPClientConfig(FTPClientConfig.TEST_YOURSELF);

FTPClient yourClient = FTPClient(...);
client.configure(conf);

要添加上述答案,应在connect()之后和登录()之前调用enterLocalPassiveMode()方法。任何其他方式我都不能让我的工作。该测试基于此处规定的另一个答案:


是的,我在登录前使用被动模式。apache commons net的版本是1.4.1,这是最新的版本。您可以使用ftp软件(例如)访问(并列出文件)吗?您是否也尝试过
listFiles(“/directory”)
?使用filezilla,我可以看到这些文件,并且在ftpClient.listFiles(“directory”)中,我尝试了所有可能的情况,选择了根路径(“/”),还尝试了根ftp目录中的文件夹(/AnyFolder”)。我编辑了我的答案,如果您更改文件列表布局,可能可以获得文件列表。我刚刚在连接后添加了对enterLocalPassiveMode的调用,它解决了我的问题。我使用的是commons net 3.3。艾奇的答案对我有用。我深深怀疑你做错了什么Raja,因为你说1.4.1是当前版本,但该版本是在2005年发布的,3.2是你发表评论当天的当前版本。
            client.connect(host, port);
            client.enterLocalPassiveMode();
            if (!client.login(username, password)) {
                throw new LoginException("wrong credentials");
            }