WinSCP: видеть прогресс при загрузке / загрузке файла
Я использую библиотеку WinSCP .NET для загрузки / выгрузки файлов с SFTP-сервера с помощью PutFiles(..)
а также GetFiles(..)
,
Есть ли способ увидеть прогресс при загрузке / скачивании файлов с этого сервера? Так, например, чтобы получить процент от размера файла, который уже загружен.
Спасибо майкл
1 ответ
Есть FileTransferProgress
событие на Session
класс библиотеки WinSCP.
Вам просто нужно зарегистрироваться для этого события, а затем обновить свой интерфейс из этого обработчика:
using (Session session = new Session())
{
// Will continuously report progress of transfer
session.FileTransferProgress += SessionFileTransferProgress;
/* Down / upload code here */
}
void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
// Print transfer progress
Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress);
}
Обратите внимание, что FileTransferProgressEventArgs.Side
позволяет определить, предназначены ли аргументы события для загрузки или загрузки. Другие свойства содержат информацию о скорости передачи, текущем файле и т. Д.
Вот полный документ для этого: http://winscp.net/eng/docs/library_session_filetransferprogress
Изменить: событие вызывается в начале каждой новой передачи (файла), а затем самое большее один раз в секунду для каждой передачи.