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