Raja
Raja

Reputation: 325

FTPClient.listFiles not working

I am trying to list all the files under a specific directory in a ftp server.

FTPFile[] subFiles = ftpClient.listFiles("directory");

Although the directory is a valid one , but the code gets stuck while calling listFiles , what may be the reason. ? Further i would like to mention that a seperate netbeans project accessing the same FTP server is working fine with the same code , but a maven project is having the problem. please help.

Upvotes: 8

Views: 14632

Answers (3)

Tinh Cao
Tinh Cao

Reputation: 67

I have same issue, with same source code, it's running fine when I run it via IDE (IntelliJ), but when run in server, it always return no file while trying to call ftpClient.listFiles()

My fix is active Local Passive Mode after connect to FTP server.

ftpClient.connect("FTP_server_address");
ftpClient.enterLocalPassiveMode();

Upvotes: 0

mahee96
mahee96

Reputation: 842

To add to above answers the enterLocalPassiveMode() method should be called after connect() and before login(). Any other way I couldn't get mine to work. This testing was based on another answer as specified here: https://stackoverflow.com/a/5183296/11971304

            client.connect(host, port);
            client.enterLocalPassiveMode();
            if (!client.login(username, password)) {
                throw new LoginException("wrong credentials");
            }

Upvotes: 4

Eich
Eich

Reputation: 3788

Try to use passive mode. I assume that you are using the newest commons net library (you didn't write which lib you are using).


Next approach, try to change the file list layout. The commons lib uses auto-detection but in some cases this doesn't work. You can change (and test) another file list layout as followed:

FTPClientConfig configuration = new FTPClientConfig(FTPClientConfig.TEST_YOURSELF);

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

Upvotes: 12

Related Questions