我想要 sftp 服务器或 ftp 服务器中存在的特定目录的文件列表。我编写了以下代码来执行此操作,但它对我不起作用。
FTPClient client = new FTPClient();
try {
client.connect("ftp.secureftp-test.com ");
client.login("test", "test");
String[] names = client.listNames();
for (String name : names) {
System.out.println("Name = " + name);
}
FTPFile[] ftpFiles = client.listFiles();
for (FTPFile ftpFile : ftpFiles) {
// Check if FTPFile is a regular file
if (ftpFile.getType() == FTPFile.FILE_TYPE) {
System.out.println("FTPFile: " + ftpFile.getName() + "; " + FileUtils.byteCountToDisplaySize(ftpFile.getSize()));
}
}
client.logout();
client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
我替换了 jsse 的 jar,但现在上面的代码没有给出任何输出。它没有返回任何文件名。
所以任何人都知道如何使用 java 并且仅使用开源库从 ftp 或 sftp 服务器获取所有文件的列表。
最佳答案
您知道您的服务器实际使用哪种协议(protocol)吗?
您没有指定您使用的库,但它看起来像 commons-net。我看到 commons-net 确实有一个 FTPSClient 类,但那是针对 FTPS 的。 ,而不是 SFTP。
假设您正在谈论 SFTP,我使用库 JSCH .
关于java - 在java中从SFTP服务器检索文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3335884/