当前位置: 首页 > 面试题库 >

URLConnection FTP列表文件

孔鹤龄
2023-03-14
问题内容
URL url =  new URL("ftp://user:pass@ftp.example.com/thefolder/");
URLConnection connection = url.openConnection();
...
// List files in folder...

使用上面的类似内容,我想知道如何在文件夹“ thefolder”中获取文件列表?

嗨,大家好,

在这个原始问题之后,我整理了这个简单的FTP连接,该连接正常工作并且看起来不错。它可以查看/ live / conf
/位置中的所有文件,并将它们全部复制到本地/ conf /位置。唯一的问题是,它正在复制文件但没有内容,它们都为0KB并且为空!

任何人都可以看到任何明显的东西来复制文件名而不复制文件内容。

干杯

KPS

try {
    FTPClient ftp = new FTPClient();
    ftp.connect("000.000.000.000");
    ftp.login("USER", "PASSWORD");
    ftp.enterLocalPassiveMode();
    ftp.setFileType(FTP.BINARY_FILE_TYPE);

    FTPFile[] files = ftp.listFiles("/live/conf/");
    for (int i=0; i < files.length; i++) {
        if (files[i].getName().contains(".csv")) {

            String remoteFile1 = files[i].getName();
            File downloadFile1 = new File("/var/local/import/conf/"+files[i].getName());
            OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
            ftp.retrieveFile(remoteFile1, outputStream1);
            outputStream1.close();

        }
    }
    ftp.disconnect();
} catch (SocketException ex) {
    ex.printStackTrace();
} catch (IOException ex) {
    ex.printStackTrace();
}

问题答案:

Java SE
URLConnection不适合从FTP主机中检索文件列表。对于FTP,它基本上仅支持FTP
getput命令(检索或上传文件)。它不支持ls您基本上在寻找的FTP 命令(列表文件),更不用说其他许多命令了。

您需要寻找支持FTP ls命令的第三方库(还有更多)。一种常用的是Apache Commons
Net
FtpClient。在其javadoc中演示了如何发出ls

FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
FTPFile[] files = f.listFiles(directory);


 类似资料:
  • 问题内容: 我有一长串以下形式的清单- 即列表中的值是不同的类型-浮点数,整数,字符串。如何将其写入csv文件,以便输出的csv文件看起来像 问题答案: Python的内置CSV模块可以轻松处理此问题: 假设您的问题中的清单定义为。您可以通过各种可选参数来调整输出CSV的确切格式,如上面链接的库参考页中所述。 Python 3更新

  • 我试图在数据库中存储文件图像和一些数据,但在运行我的应用程序时,我遇到了以下错误。 错误是: 创建名为“filePostComtroller”的bean时出错:通过字段“filePostService”表示未满足的依赖关系;嵌套的异常是org。springframework。豆。工厂UnsatisfiedPendencyException:创建名为“filePostServiceImpl”的bea

  • 我认为为这样的基本任务发出请求太多了。这是Google Drive API设计的方式,还是有更快的方法来查询文件夹中的所有文件(包含足够的元数据)?

  • 使用Apache Camel,我需要解决一个场景,其中一个watch文件夹可能包含一个数据文件的多个版本,每个版本都有相同的文件名前缀,但包含一个版本标记后缀。例如,上载的文件将在文件名后附加一个字符,如abc123a.csv、abc123b.csv、abc123c.csv,在这种情况下,我需要检索abc123c.csv并删除其他字符。知道怎么用骆驼做这件事吗?

  • 问题内容: 我有一个列表列表,我想将其写入csv文件中。示例列表: data [0]应该是列名,其他都是行数据 请给我建议一种方法。 问题答案: 这与模块无关紧要: 您已经具有标题作为第一行;您可以使用该方法一次性写入所有行。真的,这就是全部。

  • 我正在尝试在我的应用程序中注入列表。我的Spring Boot应用程序中Java对象列表的yml文件。 我已经看到了其他类似问题的一些答案,这些问题将Yaml中的列表映射到Spring Boot中的对象列表,但我有不同的输出错误。 我的YAML文件 我还创建了Bucket类 以及我的配置类,我在其中将列表注入YAML 当Spring Boot开始执行时,我出现以下错误: 我也尝试过简单的字符串列表