Java当前目录返回`null`

问题描述 投票:1回答:1

我正在尝试使用Apache Commons FTP中的printWorkingDirectory(),但仅返回null。我无法浏览目录,列表文件等。

全部通过登录成功,但是无论如何我都无法更改当前目录。我使用以下代码:

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;




public class FTPDownloadFileDemo {

    public static void main(String[] args) {
        String server = "FTP server Address";
    int port = portNo;
    String user = "User Name";
    String pass = "Pasword";
    FTPClient ftpClient = new FTPClient();
    String dir = "stocks/";
    try {

        ftpClient.connect(server, port);
        ftpClient.login(user, pass);
        System.out.println( ftpClient.printWorkingDirectory());//Always null
        //change current directory
        ftpClient.changeWorkingDirectory(dir);
        boolean success = ftpClient.changeWorkingDirectory(dir);
       // showServerReply(ftpClient);
        if (success)// never success
            System.out.println("Successfully changed working directory.");

System.out.println(ftpClient.printWorkingDirectory());// Always null


            } catch (IOException ex) {
                System.out.println("Error: " + ex.getMessage());
            ex.printStackTrace();
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.logout();
                    ftpClient.disconnect();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}
java apache ftp directory
1个回答
0
投票

这是一个比较老的问题,值得回答。需要安全连接时,使用FTPClient可能导致此问题。如果确实如此,您可能必须切换到FTPSClient。此外,如果安全客户端无法解决问题,请使用以下代码段从服务器输出响应以解决问题:

© www.soinside.com 2019 - 2024. All rights reserved.