java - 在java中从SFTP服务器检索文件列表

标签 java ftp sftp

我想要 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/

相关文章:

java - 在 Java 中将 Wikitext 转换为纯文本

java - 如何在运行时以编程方式添加 xjc 插件?

java - 通过Java代码将参数传递给JavaScript

java - 如何从 URL 创建 commons-net FTPClient

php - FTP从服务器直接下载文件到客户端

bash - 在 bash 中,如何重新建立 sftp 连接并在使 nautilus 执行此操作的脚本中运行它?

java - Apache Mina SSHD 1.0 服务器立即退出

java - 在重载版本中调用构造函数

PHP/FTP - 简单的 ftp_get 无法在本地服务器上运行,但在生产环境中运行 - 故障排除

java - 无法在 ubuntu 18.04 中使用 apache commons vfs for vsftpd 重命名文件