WinSCP:上传/下载文件时查看进度

时间:2015-01-27 11:15:51

标签: c# winscp winscp-net

我使用WinSCP .NET Library使用PutFiles(..)GetFiles(..)从SFTP服务器上传/下载文件。

有没有办法在上传/下载此服务器的文件时查看进度?例如,要获取已下载的文件大小的百分比。

谢谢, 迈克尔

1 个答案:

答案 0 :(得分:6)

FileTransferProgressSession课程中有WinSCP library个事件。

您只需注册该事件,然后从该处理程序中更新您的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);
}

请注意,FileTransferProgressEventArgs.Side可让您判断事件参数是用于上传还是下载。其他属性包含有关传输速度,当前传输的文件等信息......

以下是完整的文档:http://winscp.net/eng/docs/library_session_filetransferprogress

编辑:在每次新传输(文件)开始时调用该事件,然后每次传输最多一次。