我的思想是: 1.通过FTP得到文件的bytes,后进行分块传输,比如你每次传输255个bytes 2.在传输的过程中用触发事件 3.其实网络上的数据流和文件分割基本上是相同的原理,只是通过网络一部分一部分的接收数据包过来,在用put写入本地文件,这样一来有了文件大小,算出总共用的时间,则速度就出来了,进度条那是更出来了. 具体你可以查看 Public Declare Function InternetReadFile Lib "wininet.dll" _ (ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumBytesToRead As Long, dwNumberOfBytesRead As Long) As Integer 这个API
1.通过FTP得到文件的bytes,后进行分块传输,比如你每次传输255个bytes
2.在传输的过程中用触发事件
3.其实网络上的数据流和文件分割基本上是相同的原理,只是通过网络一部分一部分的接收数据包过来,在用put写入本地文件,这样一来有了文件大小,算出总共用的时间,则速度就出来了,进度条那是更出来了.
具体你可以查看
Public Declare Function InternetReadFile Lib "wininet.dll" _
(ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumBytesToRead As Long, dwNumberOfBytesRead As Long) As Integer
这个API
hFile文件句柄
sBuffer中
lNumBytesToRead 没次读的大小
dwNumberOfBytesRead读写状态
做了进度条和速度
进度条是配合timer控件做的
每隔1秒算一下本地文件大小/源文件大小 *100 就是进度条的值