最近看到论坛有人发文件搜索工具,想起自己4版本的时候也写过,兴起就搬到了5版本上.主要只是应用并展示Tui界面 
 
 
本搜索工具支持*和?两个windows通配符. 
左侧树形框为目录区,右侧列表框为文件区 
双击目录树可以展开该目录 
由于列表框没有优化,面对大量数据连续添加时,效率低下.因此, 
当双击目录树(双击目录树会引发枚举该目录文件)或者搜索结果数量非常多时,可能长时间出现无响应的问题,请耐心等待. 
因为支持通配符意味着可以诸如*.*或者*.exe之类的模糊条件搜索,这可能会导致枚举到巨量数据.枚举结束时大量数据持续涌入列表框将严重拖慢整个程序,因此, 
强烈建议:搜索文件尽可能提供完整目标文件名,尽量不要使用*.*之类的语句!!除非你非常有耐心...(我试过*.*枚举所有盘区,闹了45分钟还没完事.) 
双击右侧文件名可以直接打开该文件所在目录并定位该文件. 
以下是搜索核心代码 
- function 递归过程(路径,文件名,&最终结果)
 
 -     var 文件,文件夹,数量,tmp
 
 -     文件遍历(路径,文件,文件夹)
 
 -     数量=数组大小(文件)
 
 -     for(var i = 0; i < 数量; i++)
 
 -         tmp=字符串转小写(文件[i])
 
 -         if(dllcall("shlwapi.dll","int","PathMatchSpecW","wchar *",文件[i],"wchar *",文件名)!=0)
 
 -             数组增加元素(最终结果,array(路径,文件[i]),null)
 
 -         end
 
 -     end
 
 -     数量=数组大小(文件夹)
 
 -     for(var i = 0; i < 数量; i++)
 
 -         tmp=字符串修剪(文件夹[i])
 
 -         if(tmp!="")
 
 -             递归过程(路径&"\\"&文件夹[i],文件名,最终结果)
 
 -         end
 
 -     end
 
 -     return 数组大小(最终结果)
 
 - end
 
  复制代码 其中的PathMatchSpecW是支持通配符的关键函数 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 |