如何在Java中将FTP文件列表转换为文件列表? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java中将FTP文件列表转换为文件列表? [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我有一个FTP文件列表,我只能将第一个FTPFile
转换为File
。我正在使用org.apache.commons.net.ftp
库。
我的代码第一次正常工作:
for (FTPFile file : files) {
if(ftpClient.sendNoOp()){
if(file.getName()!=null || !file.getName().equals("")) {
InputStream iStream=ftpClient.retrieveFileStream(file.getName());
File file2 = File.createTempFile("xml", null);
FileUtils.copyInputStreamToFile(iStream, file2);
iStream.close();
}
}
}
从这段代码开始,循环仅遍历时间,并且FTPFile
被转换为File
,之后它将获得由null
中生成的ftpClient.retrieveFileStream(file.getName())
值创建的异常。
请帮忙。
答案
下载文件后,您必须完成传输。这就是您能够下载第一个文件并且第二个文件下载有问题的原因。
success = ftpClient.completePendingCommand();
if (success) {
System.out.println("File has been downloaded successfully.");
}
如果问题仍然存在,您可以调用ftpClient.getReplyCode(),它将告诉您无法下载文件的原因。通常,retrieveFileStream在无法打开数据连接时返回null
另一答案
来自qavxswpoi的Javadoc:
注意:如果任何单个文件列表无法解析,则此数组可能包含空成员。调用者应在引用之前检查每个条目是否为null。
您必须在数组中返回的每个项目上检查null,否则您将获得NPE。
以上是关于如何在Java中将FTP文件列表转换为文件列表? [重复]的主要内容,如果未能解决你的问题,请参考以下文章