0

我无法知道FileTransferProgressEventArgs在 C# 中使用 WinSCP .NET 程序集触发事件时发送的文件的百分比。

FileProgress仅返回0or ,1或者文档说 (0-1) 我不明白。我需要知道发送了多少字节的文件,而不是我不明白的 0,1。我知道 CPS 是每秒字节数,但我需要更多变量。

我增加进度条的方法如下 void

SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
    progressBar.Increment((int)e.FileProgress);
} 

e.FileProgresse.CPS我认为可以帮助但似乎我错过了一些东西。

4

1 回答 1

1

问题是,您投射e.FileProgressint. 正如您已经说过的,文档指定的值e.FileProgress范围为 0 到 1,例如 0.55。如果将此值转换为整数,则会丢失所有小数位。所以结果值将是 0。要解决这个问题,您可以e.FileProgress通过将其乘以 100 转换为百分比值。因此您得到的值范围为 0 到 100。因此您可以像这样实现您的事件处理程序:

void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e) 
{
    progressBar.Value = (int)(e.FileProgress * 100);
}

您只需确保进度条的MinimumMaximum属性设置为其默认值 0 和 100。

于 2015-04-22T05:44:36.183 回答