TC官方合作论坛

 找回密码
 立即注册
查看: 15799|回复: 71

[界面] Tui应用--文件搜索工具

  [复制链接]
发表于 2015-8-20 22:37:12 | 显示全部楼层 |阅读模式
最近看到论坛有人发文件搜索工具,想起自己4版本的时候也写过,兴起就搬到了5版本上.主要只是应用并展示Tui界面


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


游客,如果您要查看本帖隐藏内容请回复













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2015-8-20 23:09:27 | 显示全部楼层
不错不错
回复

使用道具 举报

发表于 2015-8-21 04:23:22 | 显示全部楼层
了解一下
回复

使用道具 举报

发表于 2015-8-21 08:29:55 | 显示全部楼层
...............
回复

使用道具 举报

发表于 2015-8-21 08:54:03 | 显示全部楼层
回复

使用道具 举报

发表于 2015-8-21 09:50:40 | 显示全部楼层
回复

使用道具 举报

发表于 2015-9-29 09:45:40 | 显示全部楼层
回复

使用道具 举报

发表于 2015-9-29 23:47:32 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2015-10-8 11:24:26 | 显示全部楼层
其中的PathMatchSpecW是支持通配符的关键函数
回复 支持 反对

使用道具 举报

发表于 2015-10-8 13:28:08 | 显示全部楼层
向你学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-4-25 23:31 , Processed in 0.042145 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表