获取文件大小,传输速度,转化时间

来源:互联网 发布:纸模设计软件 编辑:程序博客网 时间:2024/06/11 10:37
  1. //获取文件的大小,并以KB 或 MB 来表示  
  2. CString GetFileSize(LONG size)  
  3. {  
  4.     CString _size;  
  5.     //判断大小有没有超过1  
  6.     if (size<(1024*1024))  
  7.     {  
  8.         _size.Format("%.2lfKB",size/1024.0);  
  9.     }else if(1024*1024*1024)  
  10.     {     
  11.         _size.Format("%.2lfMB",(size/1024.0)/1024.0);  
  12.     }else   
  13.     {  
  14.         _size.Format("%.2lfGB",(size/1024.0/1024.0)/1024.0);  
  15.     }  
  16.     return _size;  
  17. }  
  18. //获取下载速度的字符串  
  19. CString GetFileTranSpeed(DWORD size,DWORD time)  
  20. {  
  21.     CString _speed;  
  22.     //判断时间是否为0  
  23.     if (time>0){  
  24.         if (size/1024*1000.0/time<1024)  
  25.             {  
  26.                 _speed.Format("%.2lfKB/s",size/1024*1000.0/time);  
  27.             }else   
  28.             {     
  29.                 _speed.Format("%.2lfMB/s",(size/1024)*1000.0/time);  
  30.             }  
  31.     }else  
  32.     {  
  33.         return _speed = "0KB/s";  
  34.     }  
  35.     return _speed;  
  36. }  
  37. //获取时间的字符串  
  38. CString GetTimeFormatStr(LONG time)  
  39. {  
  40.     CString _time;  
  41.     int hh = time/3600;  
  42.     int mm = (time-hh*3600)/60;  
  43.     int ss =  time%60;  
  44.     _time.Format("%d%d:%d%d:%d%d",hh/10,hh%10,mm/10,mm%10,ss/10,ss%10);  
  45.     return _time;  
  46. }  

所谓的实时下载速度也是按秒计算的,直接每秒计算一下当前下载量与上次记录的下载量便可得到从
上一秒到这一秒的下载数据量,这样实时下载速度就得出来了,至于剩余时间,可以将当前下载的数
据量与耗用的秒为单位的时间进行计算,然后通过需要下载的数据大小来预估剩余时间,公式这样:
剩余时间(秒)=须下载数据总大小/(当前耗用时间(秒)/当前下载大小)
然后把剩余时间转换一下格式就可以得到分钟、小时、天等信息了

原文地址:http://blog.csdn.net/toss156/article/details/7017189
原创粉丝点击