有沒有一種方法可以從SFTP服務器獲取文件,該文件應該基於使用Tamir.SharpSsh的修改日期?目前我正在通過文件名下載文件,但我的要求是按修改日期。根據從SFTP修改日期下載文件
var sftp = new Sftp(Host, UserName, Password);
sftp.Connect();
sftp.Get(sourcePath+"/*.*." + name + "*", destinationPath);
有沒有一種方法可以從SFTP服務器獲取文件,該文件應該基於使用Tamir.SharpSsh的修改日期?目前我正在通過文件名下載文件,但我的要求是按修改日期。根據從SFTP修改日期下載文件
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 assembly。您可以將它的Session.GetFiles
method與file mask一起使用。例如。一個file mask *>7D
selects all files modified in the last week。
(我的WinSCP的作者)
SFTP協議不允許您爲操作指定文件掩碼。無論如何,您傳遞的掩碼處理都在客戶端完成。因此,您只能列出所有文件,然後遍歷列表並根據特定條件選擇需要的文件。
SharpSSh的問題是它不允許您檢索任何文件屬性。 – 2014-08-28 13:09:59
我不認爲你可以下載的方式。我唯一的新東西是讓所有文件列在sftp上,但是這個文件的細節我不這麼認爲。 – 2014-08-28 08:20:35
是的,我知道我們從特定目錄獲取文件列表。我想要的是我需要根據修改日期列出文件。 – Sudha 2014-08-28 09:41:41