Скачать файл на основе даты изменения из SFTP

Есть ли способ получить файлы с SFTP-сервера, которые должны основываться на дате изменения, используя Tamir.SharpSsh? В настоящее время я загружаю файлы по имени файла, но мое требование - по дате изменения.

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

person Sudha    schedule 28.08.2014    source источник
comment
Я не думаю, что вы можете скачать таким образом. Единственное, что я нового, это получить все файлы, перечисленные на sftp, но детали этого файла, я так не думаю.   -  person Kuriyama Mirai    schedule 28.08.2014
comment
Да я знаю, что мы получаем список файлов из определенного каталога. Я хочу, чтобы мне нужно было перечислить файлы на основе измененной даты.   -  person Sudha    schedule 28.08.2014


Ответы (2)


SharpSsh не позволяет этого. Это мертвый проект, не используйте его.

В любом случае, я взглянул на код, чтобы оценить, насколько сложно было бы добавить возможность получения метки времени файла с помощью Sftp.GetFileList (поскольку библиотека с открытым исходным кодом).

Вам нужно будет:

  • Добавьте поле метки времени в ChannelSftp.LsEntry
  • Добавить отметку времени анализа из пакета SSH_FXP_NAME в метод ChannelSftp.ls
  • Измените (или добавьте альтернативу) Sftp.GetFileList, чтобы возвращалось не только имя файла, но и метка времени (и другие метаданные файла).

Кроме того, вы можете использовать сборку WinSCP .NET. Вы можете использовать его Session.GetFiles метод с маска файла. Например. маска файла *>7D выбирает все файлы, измененные за последнюю неделю.

(я автор WinSCP)

person Martin Prikryl    schedule 28.08.2014

Протокол SFTP не позволяет указать маску файла для операции. Обработка передаваемой вами маски в любом случае выполняется на стороне клиента. Таким образом, вы можете только перечислить все файлы, затем просмотреть список и выбрать нужные файлы по определенным критериям.

person Eugene Mayevski 'Callback    schedule 28.08.2014
comment
Проблема с SharpSSh заключается в том, что он не позволяет вам получить какой-либо атрибут файла. - person Martin Prikryl; 28.08.2014