2015-01-27 2 views
2

Я использую библиотеку WinSCP .NET для загрузки/скачивания файлов с SFTP-сервера с помощью PutFiles(..) и GetFiles(..).WinSCP: см. Прогресс во время загрузки/скачивания файла

Есть ли способ увидеть прогресс при загрузке/загрузке файлов этого сервера? Так, например, чтобы получить процент от размера файла, который уже загружен.

Спасибо, Майкл

ответ

5

Там в FileTransferProgress событие на Session класса WinSCP library.

Вы просто должны зарегистрироваться для этого события, а затем обновить пользовательский интерфейс внутри этого обработчика:

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

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

+0

Спасибо за ваш ответ! Следующий вопрос: в каком интервале вызывается эта функция во время загрузки/выгрузки? Или есть возможность установить интервал? – ZerOne

+0

Ссылка на документацию, в которой я указывал: «Событие возникает при запуске передачи каждого файла, а затем не более одного раза в секунду для продолжительности передачи». – pysco68

+0

Ах, sry не видел .. Спасибо за ваши ответы! – ZerOne

Смежные вопросы