根据从 SFTP 修改的日期下载文件

本文关键字:日期 下载 文件 修改 SFTP | 更新日期: 2023-09-27 18:19:38

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

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

根据从 SFTP 修改的日期下载文件

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

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

您必须:

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

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

(我是WinSCP的作者(

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