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

Изменить: событие вызывается в начале каждой новой передачи (файла), а затем самое большее один раз в секунду для каждой передачи.

Другие вопросы по тегам