我在知道在C#中使用WinSCP .NET程序集触发FileTransferProgressEventArgs
事件时发送的文件百分比时遇到问题。
FileProgress
仅返回0
或1
,或文档说(0-1),我不明白。我需要知道文件的多少字节发送但不是0,1我不明白。我知道CPS是每秒的字节数,但我需要更多的变量。
我增加进度条的方法如下 我认为它可以提供SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
progressBar.Increment((int)e.FileProgress);
}
e.FileProgress
和e.CPS
,但似乎我错过了一些东西。
答案 0 :(得分:1)
问题是,您将e.FileProgress
投射到int
。正如您所说,文档指定e.FileProgress
的值范围为0到1,例如0.55。如果将此值转换为整数,则将丢失所有小数位。因此结果值将为0。
要解决此问题,您可以将e.FileProgress
转换为百分比值,方法是将其乘以100.因此,您可以获得0到100之间的值。因此,您可以像这样实现事件处理程序:
void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
progressBar.Value = (int)(e.FileProgress * 100);
}
您只需确保进度条的Minimum
和Maximum
属性设置为默认值0和100。