小弟现在遇到一个难题,目的:
win7下,我的代码中需要用一个界面显示一个路径下所有的文件和文件夹,创建时间,文件类型,文件属性和文件夹属性。问题:
当路径下文件和文件夹数量比较多的时候,进入这个路径会非常慢。我现在使用的是串行的枚举方法进行显示。有没有更高效的方法解决,文件数量多了显示慢的问题。
小弟跪求。

解决方案 »

  1.   

    用多线程吧,一边读取文件数据,一边显示部分已经读取的数据,
      

  2.   

    一个是多线程,另一个是提高硬盘的质量,老硬盘检索文件就是没新硬盘快。
      

  3.   

    看实际情况咯
    不知道你说的慢是哪个层次的慢。
    慢分两种:
    1、程序卡死时间比较长,比如20秒或者1分钟后才有反应;
    2、程序一直有反应,但列表一直在增加,等到列表完全加载完成需要时间很长,比如20秒或者1分钟。多线程或者异步的方法,只能解决第一个问题,不能解决第二个问题。
    同时还有一种情况连第一个问题都解决不了,就是列表在不停增加的时候,本身就会造成程序反应缓慢(不是卡死)。如果需要解决上述问题,需要在使用策略上做文章。一般来说,一个目录下的文件不会特别多,那么可以采用单个目录的响应显示。即选了哪个目录,就显示哪个目录下的。
    如果确实需要显示一个目录下的可能非常多的(上万或者几万)条目,可以给一个提示:你正在递归显示目录,可能需要等待几分钟,然后再用卡死的方式获取(这样效率相对较高,速度比异步的能快一点点)。纯技术的直接解决方案往往不会很容易达到要求。