搜索
查看: 943|回复: 2

如何快捷的在所有分区中查找到指定文件名的文件?

[复制链接]

2

主题

2

帖子

4

积分

新手入门

Rank: 1

积分
4
发表于 2017-12-4 15:01:03 | 显示全部楼层 |阅读模式
我知道这个问题跟aardio语言无关,不过这里的高人比较多.

问题: 如何快捷的在所有分区中查找到指定文件名的文件?

代码:

  1. //先通过快捷方式
  2. var setpath = ..fsys.lnk.search(exe_name )

  3.                         if(!setpath){
  4.        
  5.                                                 var drives = ..sys.volume.getLogicalDrives()
  6.                                                 ..table.reverse(drives)
  7.        
  8.                                                 /*执行耗时函数、并正常处理窗口消息*/
  9.                                                 for(i,drv in drives){
  10.                                                          var info = ..sys.volume.getInfo( drv)  ;
  11.                                                          ..fsys.enum( info.drive + "", exe_name,
  12.                                                                 function(dir,filename,fullpath,findData){
  13.                                                                        
  14.                                                                         if(filename == exe_name){
  15.                                                                                 setpath = fullpath;
  16.                                                                                 return false;
  17.                                                                         }
  18.                                                                 },
  19.                                                                 true
  20.                                                         );
  21.                                                 }
  22.                                                 //end search
  23.                                         }               
  24.                        
  25.        
复制代码


我知道最快的方法是通过fsys.lnk.search去找快捷方式, 这样可以非常快的找到我要打开的某个程序,
但是, 当有一些软件并未创建快捷方式的时候, 也没有注册表可以查(类似各种绿色软件), 就需要在C: D: E: 挨个搜索, 这样可能要N分钟才能找到.

当然, 我可以开多个线程去不同的分区查找...不过还是逃不了要遍历. 哈哈,看看有没有更先进的办法?


谢谢.
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-12-4 15:50:35 | 显示全部楼层
这个好像没有什么更好的方法,毕竟也不能变魔术是不,该花的时间还是要花的,

普通文件,你可以参考一下:
fsys.journal 扩展库 - 仿everything快速搜索文件
http://bbs.aardio.com/forum.php?mod=viewthread&tid=9460


如果是查找应用程序,除了 fsys.lnk 以外,还可以用 process.cache,例如:
process.cache.find("chrome")

回复

使用道具 举报

2

主题

2

帖子

4

积分

新手入门

Rank: 1

积分
4
 楼主| 发表于 2017-12-4 16:03:08 | 显示全部楼层
Jacen.He 发表于 2017-12-4 15:50
这个好像没有什么更好的方法,毕竟也不能变魔术是不,该花的时间还是要花的,

普通文件,你可以参考一下 ...

He老大果然有干货, 哈哈, 理论上process.cache这个对我挺有用, 至于journal那个我看范例中提到需要先几分钟分析日志..., 可能对我的一次性使用场景不match.

谢谢 @He
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-14 01:24 , Processed in 0.078125 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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