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