代码改变世界

四、Socket之UDP异步传输文件-用控件显示文件传输进度

2014-06-17 12:56  xchit  阅读(939)  评论(1编辑  收藏  举报

  上一篇文章三、Socket之UDP异步传输文件中,实现了多文件的传输和MD5校验,还显示了文件传输过程中的信息,在这一篇文章中,将介绍怎样实现传输文件的进度显示和实现选择保存文件路径。

         首先,来实现一个显示文件传输过程信息的控件,它需要显示文件的图标、名称、大小、已经传输了的大小、文件的传输速度和一个进度条,进度条可以很直观的看到文件传输的完成量。

要获得文件的图标可以用API,但是还有一个更简单的方法,就是Icon类的ExtractAssociatedIcon方法,看看它的说明:返回指定文件中包含的图像的图标表示形式,呵呵,是不是很方便。

  在请求发送文件的时候,要把图标也发送到接收端去,所以我们要在原来的TraFransfersFileStart类中多加一个Image属性。

    在文件的传输过程中,我们要知道接收或发送文件的一部分大小、文件是否接收或发送完成等很多不同的信息,所以在原有的文件发送类(UdpSendFile)和文件接收类(UdpRecieveFile)增加了几个事件,具体的事件就不进行过多的介绍了,大家可以下载源码来看。当收到文件的一个数据包或者发送文件的一个数据包,还有接收或发送完成的时候,我们就通过这些事件来更新显示发送或接收文件控件的信息,这样,我们就可以很清楚的了解到文件传输信息了。

    现在来看看文件传输的截图:
    开始发送:  

转载CS 程序员之窗 demo下载