根据SFTP修改日期下载文件

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

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

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

无论如何,我看了一下代码来评估使用Sftp.GetFileList添加检索文件时间戳的可能性是多么困难(因为库是开源的)。

你必须:

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

或者,您可以使用WinSCP .NET程序集 。 您可以将Session.GetFiles方法与文件掩码一起使用 。 例如, 文件掩码*>7D选择上周修改的所有文件 。

(我是WinSCP的作者)

SFTP协议不允许您指定操作的文件掩码。 无论如何,您通过的掩码处理都在客户端完成。 因此,您只能列出所有文件,然后遍历列表并按特定条件选择所需的文件。