在VS2013下模拟实现了类似Everything的文件快速搜索功能,支持模糊匹配,高亮显示搜索部分。
1、首先在linux下有find命令,找一个文件是非常快的。
2、在windows下,查找是比较慢的,可以说是很慢的了,所以就想自己实现一个
3、使用everything搜索,效率很明显快乐很多
使用windows下的搜索是非常慢的,并且不支持拼音搜索和拼音首字母搜索。所以自己实现了一个有这些功能的快速搜索工具。用到了SQLite,是一个轻量级的数据库,因为安装在本地就可以工作,而MySQL是C-S模型的,还需要连接服务器,我们只是在本地进行搜索,不需要上传到服务器中,或者跨电脑搜索,没有必要。
实现流程:
1、数据库的操作:打开数据库,建表,实行SQL语句。因为在结束搜索任务的时候,因为表是用到了单例模式,为了避免忘记释放操作数据表的对象,用了RAII的思想,智能管理表的释放(类似Unique_ptr)。
对于存储文件名和位置的表来说,实际在我们使用中只需要使用到一份表格,所以用到了单例模式(饿汉)。因为要支持拼音搜索和拼音首字母搜索,所以建表是就把文件的相关信息存到表中。
2、遍历指定文件夹:在这个文件夹下,有可能有文件和文件夹,所以需要两个容器来存储,遍历时需要注意,一个文件夹内默认包含了当前(.)和上一层(..),所以遇到不再遍历当前和上层,否则会有死循环。用