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

时间:2014-08-28 08:07:29

标签: c# sftp sharpssh

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

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

2 个答案:

答案 0 :(得分:4)

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

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

你必须:

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

或者,您可以使用WinSCP .NET assembly。您可以将Session.GetFiles methodfile mask一起使用。例如。一个file mask *>7D selects all files modified in the last week

(我是WinSCP的作者)

答案 1 :(得分:0)

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