Zer*_*One 2 c# winscp winscp-net
我使用WinSCP .NET库通过使用PutFiles(..)和从SFTP服务器上载/下载文件GetFiles(..).
有没有办法在上传/下载此服务器的文件时查看进度?例如,获取已下载的文件大小的百分比.
谢谢,迈克尔
WinSCP库FileTransferProgress的Session类上有一个事件.
您只需注册该事件,然后从该处理程序中更新您的UI:
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);
}
Run Code Online (Sandbox Code Playgroud)
请注意,FileTransferProgressEventArgs.Side您可以告知事件参数是用于上载还是下载.其他属性包含有关传输速度,当前传输的文件等信息...
这是完整的文档:http://winscp.net/eng/docs/library_session_filetransferprogress
编辑:事件在每次新传输(文件)开始时调用,然后每次传输最多一次.