【问题标题】:Get file time before downloading the file using FTP在使用 FTP 下载文件之前获取文件时间
【发布时间】:2018-02-07 17:52:57
【问题描述】:

在 Java 中无需使用 getModificationTime 即可获取文件创建日期或上次修改日期的任何方法。

我正在使用 org.apache.commons.net.ftp.FTPClient 类。我的问题是,我无法在下载文件之前使用 getModificationTime 获取时间戳。

【问题讨论】:

  • MDTM 是一个 FTP 命令,那么您为什么希望它被列为 Eclipse 建议呢? --- 另外,你指的是什么getModificationTime 方法? --- 显示您当前拥有的代码并指定您正在使用的 FTP 库(如果有)。
  • 我正在尝试获取我尝试通过 FTP 传输的文件的最后修改日期,而不是将其下载到本地
  • 所以???? 如何?您使用的是什么 FTP 类?什么FTP库?或者您是否需要具有此类功能的库?如果是这样,那么让我相当 Help Center要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源与 Stack Overflow 无关
  • 我正在使用 org.apache.commons.net.ftp.FTPClient 类。我的问题是,我无法在下载文件之前使用 getModificationTime 获取时间戳
  • 您不认为该信息对问题重要吗?你不认为你应该编辑这个问题来澄清吗?请阅读以下Help Center 文章:How do I ask a good question? 只有你问了一个好问题,你才有可能得到一个好答案。

标签: java ftp


【解决方案1】:

你可以使用Apache Commons Net库,这里是一个示例代码:

package com.grebski.ftp;

import org.apache.commons.net.ftp.FTPClient;

import java.io.IOException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;

public class FtpTest {

    public static void main(String[] args) throws IOException {
        String ftpUrl = "speedtest.tele2.net";
        FTPClient ftpClient = new FTPClient();
        ftpClient.connect(ftpUrl);
        ftpClient.user("anonymous");
        ftpClient.pass("anonymous@a.com");
        Arrays.stream(ftpClient.listFiles()).forEach(file -> {
                    LocalDateTime creationDateTime = Instant.ofEpochMilli(file.getTimestamp().getTimeInMillis()).atZone(ZoneId.systemDefault()).toLocalDateTime();
                    String msg = String.format("%s %s", file.getName(), creationDateTime);
                    System.out.println(msg);
                }
        );
    }
}

【讨论】:

  • 我得到“数组类型的方法流(FTPFile[])未定义”。获取修改时间戳的传统方法是什么?
  • 我们如何在 Java 7 中获得相同的效果?
  • 整个 Arrays.stream 行可以删除,你应该感兴趣的是ftpClient.listFiles(),它返回 ftp 服务器上的文件数组,然后你可以遍历数组
【解决方案2】:

您是否有机会找到文件的大小和网络速度?它们是了解下载时间的重要方面。

【讨论】:

  • 不是答案。应该是一个评论,所以等到你有需要的 50 个代表。您快到了。删除此答案以清除我刚刚通过投票给您的负面代表。
  • 我正在尝试获取我尝试通过 FTP 传输的文件的最后修改日期,而不是将其下载到本地
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
相关资源
最近更新 更多