0

我无法使用 FTPClient 获得确切的文件列表。示例代码如下:

FTPClient client = new FTPClient();
client.connect("x.x.x.x");
client.login("abcd", "abcd");
FTPFile[] ftpFiles = client.listFiles();
for (FTPFile ftpFile : ftpFiles) {
   System.out.println("FTPFile: " + ftpFile.getName());
}

我尝试使用 enterLocalPassiveMode()/enterRemotePassiveMode()/pasv() 设置为 PASV 模式。但是,它不起作用。

另请检查Apache Commons FTPClient.listFiles ..

谢谢

4

2 回答 2

2

我不知道是什么files,但你得到的结果是client.listFilesin ftpFiles,而不是 in files。然后在你的for循环中你过去files

于 2011-01-10T09:34:24.510 回答
1


尝试这个。

String[] fileFtp = client.listNames();//if it is directory. then list of file names

//download file
for (int i =0;i<fileFtp.length;i++) {

   String fileName = fileFtp[i];

   OutputStream out = new FileOutputStream(new File("local temp file name"));

   if (!client.retrieveFile(fileName, out)) {       
        sysout("Could not download the file. "+ fileName);
    } else {
        sysout("Downloaded file @ : "+localFileName);   
    }       
} 

这应该有效。
谢谢。

于 2011-01-10T09:39:52.620 回答