我想做使用C#一个类似飞鸽的东西,可以在不同电脑间传文件夹.可是问题来了!
 问题是:怎样合理的使用线程,才可以使传送文件夹最快。
简化一个,假设这里要求的是复制文件夹。
环境是:复制文件夹(在同一电脑)。
要求:多线程
目的:最科学,最被主流使用的方法.
请大侠门赐教。
最好是源码,当然,思路也很好。
(说下我的观点:我认为的步骤是:
1.获得文件夹大小(用一个线程的递归吗?挺慢的)
2.根据文件夹大小,建立对应数量的线程。
3.线程开始工作.
每个环节都有问题:
问题1:
获得文件夹大小,我用的是一个线程的递归,挺慢的
问题2:
假设我们已经获得了文件夹的大小,开始建立线程了,我觉得思路应该是这样的:
把文件夹分解开,然后每个线程线程  
怎么建立才能最快?从哪里把文件夹分隔开?!!!!!!)相关问题(:
飞鸽复传送文件夹的时候,用于复制文件夹的线程数是固定的,还是根据文件夹的大小而动态变化的?
windows自带的复制文件夹,是怎样实现的.

解决方案 »

  1.   

    遍历文件夹,实现分割,再启用多线程使用socket实现传送
    参考
      

  2.   


    实践才是检验“真理”的唯一标准。实际上即使不考虑实践,现在也已经有很多多线程的用于替换windows操作系统文件复制功能的系统,据说比windows操作系统自身的拷贝速度快的“令人发指”。
      

  3.   

    windows操作系统自身的拷贝速度的确很快,那是对同硬盘来的吧,,
    通过网络的话那是另一回事le
      

  4.   

    我使用server2008系统,windows复制的速度是16Mb\s(复制到自身硬盘里),我使用C#单线程复制,速度是17Mb\s
    我确定,使用一个线程不是最快的
    谁给我个多线程复制的例子,现在的难题是不知道如何如何文件夹?