我正在使用apache-commons-net 3.4,但发现一个无法解释的奇怪问题。我想获取目录的FTPFile
条目,但是当我使用FTPClient#listFiles()
时,返回一个空数组,但是FTPClient#listNames()
列出所有条目。
FTPClient client = new FTPClient();
client.connect("192.168.1.4");
client.enterLocalPassiveMode();
client.login("ftpuser", "ftpuser");
System.out.println( client.listFiles("/").length); // prints 0
System.out.println( client.listNames("/").length); // prints 21
这是怎么回事,如何正确使用
listFiles()
?无法回答我的问题的相关问题:
Apache Commons Net FTPClient and listFiles()
Issue with org.apache.commons.net.ftp.FTPClient listFiles()
最佳答案
本主题可以帮助您使listFiles
工作:
FTPClient.listFiles not working
从FtpClient
的文档中,这两种方法的工作方式不同:
listFiles(String pathname)使用默认系统自动检测
机制,获取当前工作目录或仅单个文件的文件信息列表。
通过LIST命令。
listNames(String pathname)获取目录中文件名的列表
(或者只是给定文件的名称,这不是特别有用)。此信息是通过NLST命令获得的。
关于java - Apache FTPClient listFiles()与listFileNames(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34153004/