多文件下载速度计算

单一文件的下载速度计算较为方便,多文件下载计算下载速度则有一些困难。一般来说,多文件下载为了提高下载速度,会采用多线程并行下载。我采取的方式如下:

  1. 根据要下载的所有文件项,得到要下载的文件的大小总量。
  2. 从目标路径检索已经下载好的文件项,得到已下载好的文件大小。
  3. 待下载的文件大小 = 总量-已下载文件大小
  4. 待下载的文件项,自己计算已经下载的文件大小。向外暴露一个Size属性供外界计算。(Size的求值算法是:如果下载完成了就取文件大小,没有下载完成则取正在下载的临时文件的大小。)这种方式可以在临时文件下载完成,复制到目标文件后,立即删除文件,避免磁盘空间的占用,也方便做下载操作的统一处理。
  5. 定时器每秒计算速度 = 已下载量 / 总量