>>欢迎讨论,怎样最快查找硬盘上某种类型的文件?

codearts 2005-11-12 07:02:43
如题。

今天停电,突然想到这个问题。于是想到杀毒软件在扫描硬盘的时候都要遍历每一个文件,然而有些杀毒软件查的很慢,有的却很快(NOD32最快了),抛开对文件处理的时间不说,我想在遍历文件的时候,肯定有种算法,以使它达到最优!

我用win2003,以前查找一个文件的时候感觉很慢,现在打SP1之后,感觉搜索文件似乎快了很多,看来MS在这个功能上加足了劲,嘿嘿!

我又再想到了一点,如果要找硬盘上所有的.txt文件(类似这种,要查找某一扩展名的文件),又该用什么算法最优?

欢迎大家讨论,仁者见仁,智者见智!
...全文
794 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
codearts 2005-11-13
  • 打赏
  • 举报
回复
楼上的,我以前用window2003(未打Sp1),系统带的那个搜索是慢呀!
比如以前我的c:是8G,搜索一个文本文件要15~30秒,还要启用Indexing Service

如今用sp1的windows2003, Indexing Serivce默认是禁用的,我在搜索c:\的时候,只要5~8秒就搞掂。现在根本不想装google desktop search了,这东西在那建索引太耗时!

这说明,windows2003的搜索功能又采用了较优的算法
xiaocai0001 2005-11-13
  • 打赏
  • 举报
回复
其他技术
fiftymetre 2005-11-13
  • 打赏
  • 举报
回复
可以使用多重索引吧。
junku_kong 2005-11-13
  • 打赏
  • 举报
回复
Up
snowbirdfly 2005-11-13
  • 打赏
  • 举报
回复
学习先~~~
个人感觉Windows自己搜索功能应该很快了`~~
北极猩猩 2005-11-13
  • 打赏
  • 举报
回复
不改变文件组织方式,想要加快搜索速度的方式只有排序和索引,在文件系统上进行排序是不现实的,所以用的都是索引的方式。

不论是Indexing Service还是Desktop Search
Wolf0403 2005-11-13
  • 打赏
  • 举报
回复
codearts:我记得我从 MMC 里面直接调用 Indexing Service 的查询页面搜索信息,速度飞快无比……

后来装了 Win2003 的时候我已经不用搜索了 -_-
Wolf0403 2005-11-12
  • 打赏
  • 举报
回复
索引可以分布建立,然后按二进制保存下来,下次启动的时候只要把二进制的索引结构映射回内存就可以继续使用,不会很慢的。MS 的 Indexing Service,Google 的 Desktop Search 都是很好的例子。

可惜了 MS 的 Indexing Service,竟然一直没被开发出来作为亮点。
Jinhao 2005-11-12
  • 打赏
  • 举报
回复
硬盘大小不是关键,是文件的多少才是关键...为了速度,就只有浪费一点时间了
zengkun100 2005-11-12
  • 打赏
  • 举报
回复
楼上的办法太高了吧,120G的硬盘被你这么启动的时候搞一下肯定不想用了。
Jinhao 2005-11-12
  • 打赏
  • 举报
回复
在程序启动的时候,就全盘遍历,然后把结果保存到内存里。然后监视硬盘的读写操作,如果发生删除文件或新建文件,就相应修改内存里的记录,然后以后搜索的时候,就直接在内存里找,这样不相信不快
codearts 2005-11-12
  • 打赏
  • 举报
回复
现在不是考虑建立索引,建索引都被耗去很长的时间了

是如何快速查出!就算用api,我想是不是还有什么地方可以使用高效的算法,难道只能照MSDN上写的那样了?
K 2005-11-12
  • 打赏
  • 举报
回复
索引?Windows DeskTop Serach用的就是索引
sankt 2005-11-12
  • 打赏
  • 举报
回复
up
060 2005-11-12
  • 打赏
  • 举报
回复
可以参考以下问题:
搜索引擎是怎么在上亿张网页中找到你输入的关键字?

我想硬盘搜索使用的是类似的技术,首先建立索引,当用户输入关键字搜索是引擎就在索引里查找。

Jinhao 2005-11-12
  • 打赏
  • 举报
回复
莫办法,要么用Win提供的API,要么自己遍历分区上的文件系统。不过你要相信Windows自己的文件系统驱动是很NB的

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧