org.apache.commons.net.ftp.FTPClient listFiles 始终 returns 来自根目录的文件,而不管参数中给出的路径名如何
org.apache.commons.net.ftp.FTPClient listFiles always returns files from root directory irrespective of the pathname given in argument
class FTPClient 中的 listFiles 始终从根目录返回目录或文件,即使路径作为参数给出也是如此。
public static void main(String[] args) {
String server = "192.168.0.60";
int port = 21;
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server,port);
ftpClient.enterLocalPassiveMode();
ftpClient.login("anonymous", "");
FTPFile[] files = ftpClient.listFiles("/StorageCard");
for(FTPFile ftpFile: files) {
System.out.println(ftpFile.getName());
}
} catch(IOException io) {
io.printStackTrace();
}
}
StorageCard 是根文件夹中的一个目录
输出我得到的是
- 网络内部存储
- WinDrive
- 存储卡
- 申请数据
- 我的文档
- 程序文件
- Windows
- .........
您应该在使用 listFiles()
之前更改工作目录
ftpClient.changeWorkingDirectory("StorageCard");
FTPFile[] files = ftpClient.listFiles();
class FTPClient 中的 listFiles 始终从根目录返回目录或文件,即使路径作为参数给出也是如此。
public static void main(String[] args) {
String server = "192.168.0.60";
int port = 21;
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server,port);
ftpClient.enterLocalPassiveMode();
ftpClient.login("anonymous", "");
FTPFile[] files = ftpClient.listFiles("/StorageCard");
for(FTPFile ftpFile: files) {
System.out.println(ftpFile.getName());
}
} catch(IOException io) {
io.printStackTrace();
}
}
StorageCard 是根文件夹中的一个目录
输出我得到的是
- 网络内部存储
- WinDrive
- 存储卡
- 申请数据
- 我的文档
- 程序文件
- Windows
- .........
您应该在使用 listFiles()
ftpClient.changeWorkingDirectory("StorageCard");
FTPFile[] files = ftpClient.listFiles();