【发布时间】:2012-12-26 19:49:24
【问题描述】:
我正在使用 Apache FTPClient 来获取文件和子目录文件列表。但它无法从带有空格的目录名中获取文件列表。这是一个示例 - 我尝试使用两个不同的目录:
FTPClient client = new org.apache.commons.net.ftp.FTPClient();
client.connect("ftp.domain.com");
client.login("userid", "password");
FTPFile[] names = client.listDirectories("ABC XYZ"); //Empty array
FTPFile[] names2 = client.listDirectories("ABCXYZ"); //working
所以带有空格的目录名不返回任何内容。我试图将“%20”和“+”放在空格处。我也试过“\”ABC XYZ\“”。但仍然无法正常工作。我有什么遗漏吗?
【问题讨论】:
-
您确定目录
ABC XYZ存在于您要查找的位置吗? -
@JimGarrison 是的,它存在。我可以用其他 ftp 管理器甚至浏览器打开它。
-
目录
ABC XYZ是否包含任何子目录?这就是你在这里要求的。也许您打算使用listFiles()? -
@JimGarrison 是的,它包含许多子目录和文件。虽然没关系,因为至少它应该返回 2 个目录 - '.'和“..”。
-
我的猜测是实际系统类型和客户端使用的系统类型不匹配。这可能会导致使用错误的
FTPFileEntryParser实现。看看FTPClientConfig和FTPClient#setParserFactory()。
标签: java ftp apache-commons-net