【问题标题】:Download file based on date modified from SFTP根据从 SFTP 修改的日期下载文件
【发布时间】:2014-10-22 00:32:00
【问题描述】:

有没有办法使用 Tamir.SharpSsh 从 SFTP 服务器获取基于修改日期的文件?目前我正在按文件名下载文件,但我的要求是按修改日期。

var sftp = new Sftp(Host, UserName, Password);
sftp.Connect();
sftp.Get(sourcePath+"/*.*." + name + "*", destinationPath);

【问题讨论】:

    标签: c# sftp sharpssh


    【解决方案1】:

    SharpSsh 不允许这样做。这是一个死项目,不要使用它。

    无论如何,我查看了代码以评估使用Sftp.GetFileList 检索文件时间戳的难度(因为该库是开源的)。

    你必须:

    • 将时间戳字段添加到ChannelSftp.LsEntry
    • SSH_FXP_NAME数据包中的时间戳解析添加到ChannelSftp.ls方法
    • 修改(或添加替代)Sftp.GetFileList 以不仅返回文件名,还返回时间戳(和其他文件元数据)。

    或者,您可以使用WinSCP .NET assembly。您可以将其Session.GetFiles methodfile mask 一起使用。例如。 file mask *>7D selects all files modified in the last week

    (我是 WinSCP 的作者)

    【讨论】:

      【解决方案2】:

      SFTP 协议不允许您为操作指定文件掩码。无论如何,您传递的掩码的处理都是在客户端完成的。所以你只能列出所有文件,然后遍历列表,按照一定的标准挑选你需要的文件。

      【讨论】:

      • SharpSSh 的问题是它不允许您检索任何文件属性。
      猜你喜欢
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多