有没有办法从SFTP服务器获取应使用Tamir.SharpSsh基于修改日期的文件?目前我按文件名下载文件,但我的要求是修改日期。
var sftp = new Sftp(Host, UserName, Password);
sftp.Connect();
sftp.Get(sourcePath+"/*.*." + name + "*", destinationPath);
答案 0 :(得分:4)
SharpSsh不允许这样做。这是一个死的项目,不要使用它。
无论如何,我看了一下代码来评估使用Sftp.GetFileList
增加检索文件时间戳的可能性是多么困难(因为库是开源的)。
你必须:
ChannelSftp.LsEntry
SSH_FXP_NAME
数据包中的时间戳解析为ChannelSftp.ls
方法Sftp.GetFileList
不仅返回文件名,还返回时间戳(和其他文件元数据)。或者,您可以使用WinSCP .NET assembly。您可以将Session.GetFiles
method与file mask一起使用。例如。一个file mask *>7D
selects all files modified in the last week。
(我是WinSCP的作者)
答案 1 :(得分:0)
SFTP协议不允许您指定操作的文件掩码。无论如何,您通过的掩码处理都在客户端完成。因此,您只能列出所有文件,然后遍历列表并按特定标准选择所需的文件。