WinSCP:查看 upload/download 文件的进度
WinSCP: see progress while upload/download file
我通过 PutFiles(..)
和 GetFiles(..)
.
使用 WinSCP .NET 库从 SFTP 服务器 upload/download 文件
有没有办法查看此服务器 uploading/downloading 个文件的进度?因此,例如,获取已下载文件大小的百分比。
谢谢,
迈克尔
有一个FileTransferProgress
event on the Session
class of the 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
编辑: 在每次新传输(文件)开始时调用该事件,然后每次传输最多每秒调用一次。
我通过 PutFiles(..)
和 GetFiles(..)
.
有没有办法查看此服务器 uploading/downloading 个文件的进度?因此,例如,获取已下载文件大小的百分比。
谢谢, 迈克尔
有一个FileTransferProgress
event on the Session
class of the 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
编辑: 在每次新传输(文件)开始时调用该事件,然后每次传输最多每秒调用一次。