【问题标题】:WinSCP: see progress while upload/download fileWinSCP:在上传/下载文件时查看进度
【发布时间】:2015-01-27 11:15:51
【问题描述】:

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

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

谢谢, 迈克尔

【问题讨论】:

    标签: c# winscp winscp-net


    【解决方案1】:

    WinSCP librarySession 类上有一个 FileTransferProgress 事件。

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

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

    【讨论】:

    • 感谢您的回答!下一个问题是:在下载/上传期间调用此函数的时间间隔是多少?或者有没有可能设置间隔?
    • 我提供的文档链接指出“事件在开始传输每个文件时引发,然后在传输期间最多每秒一次。”
    • 抱歉没看到。。谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2015-12-10
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多