如题,我现在用的是递归方式来检索文件,文件少还无所谓,一多起来就很耗时了。
有什么办法可以再5秒钟以内获取最少2万个文件的信息呢?还有就是检索出来的信息我是用链表来装的,算法是用汇编写的,是否链表的储存方式要比较耗时呢?

解决方案 »

  1.   

    自己读文件分配表能否比用FindFirstFile()+FindNextFile()快点呢?
      

  2.   

    在这里不能用递归了!!!!!1
    1.文件数很多要求快递归的速度,咱么心里都明白2.这也是最重要的是,你要厉遍2w个文件,递归要用栈的空间,可能引起栈空间耗尽发生crash获取系统hang的严重问题3.在描述搜索算法时,c比asm好的多,并且asm也是这么写,还是告诉楼主用c的堆来解决
      

  3.   

    “自己读文件分配表能否比用FindFirstFile()+FindNextFile()快点呢?”
    会的,但比较难
    要速度快,就是要优化程序,少用高级别API,即使如此,2w个文件在5秒完成的可能性很少
      

  4.   

    Did u consider  MSN or Google Desktop Search?
      

  5.   

    jiangsheng(蒋晟.Net[MVP]) 所说的要有索引才行的吧,
    在我的机器Winxp获取16000个文件大概要8秒左右.
    如果处理得当5秒获得2万个文件的信息还是可以的吧,还要看机器速度.
    主要是文件名,大小,各种时间的吧.
      

  6.   

    文件多用递归慢?这是什么逻辑?
    文件多并不是等于层次多,如果文件全部都在一个文件夹内,那么即使你用递归写的算法,
    他也不‘递归’啊-。-我觉得这个速度的瓶颈可能是出在动态的内存分配上。
    ___________________________________________________
      是哦,如果不是多层次的话,跟递归就几乎无关了!直接获得fat表什么的也未必快,其中的转换也许还不如用api函数! 我觉得上面的人说的很在理~