使用DirectoryWalker和FileFilterUtils进行搜索
来源:互联网 发布:淘宝自然搜索怎么弄 编辑:程序博客网 时间:2024/06/17 05:43
Apache commons IO包中提供了一个可以遍历目录下资源的DirectoryWalker,还有很多的IOFileFilter用于过滤文件目录。下面的例子分别演示了这个功能。
这两个搜索类都是以内部类的方式嵌入客户端的,客户端接收客户的参数,然后通过一个后台线程来进行搜索,等待子线程完成搜索后(join方法),再打印搜索结果。
注意这个过程是可以被cancel的。cancel主要有2种情况。外部cancel:外部线程通过调用内部类的cancel()方法。内部cancel:在handleDirectory、handleFile中主动抛出CancelException。
walk方法在每次执行前、后都会检查当前是否有cancel指令发出(checkIfCancelled ---> handleIsCancelled),如果有那么默认立刻抛出CancelException,然后调用handleCancelled方法。
这里搜索实现类被实现为一个内部类,目的是不想暴露内部的搜索过程逻辑,只对外暴露客户端接口。其次内部采用线程实现,方便充当客户端的外部类可以在必要时cancel这个内部线程操作,而且当搜索过程漫长时不会造成界面假死(GUI界面)。
在搜索过程中,我们可以对搜索到文件、资源进行处理,例如:删除,重命名,移动等。最常见的一个应用就是批量删除搜索到的文件。例如.svn目录或日志文件
【一】从根目录开始,查询(指定目录下)指定的文件
- 使用DirectoryWalker和FileFilterUtils进行搜索
- 使用Google 进行搜索
- 使用 Apache Lucene 和 Solr 进行位置感知搜索
- 使用 Apache Lucene 和 Solr 进行位置感知搜索
- 使用 Apache Lucene 和 Solr 进行位置感知搜索
- 使用 Apache Lucene 和 Solr 进行位置感知搜索
- 使用nutch进行搜索代码
- 如何使用google进行搜索
- 使用GIT GREP进行搜索
- 使用迭代器进行二分搜索
- laravel使用ElasticSearch进行搜索
- Yii 在GridView中使用关联模型进行搜索和排序
- 使用深度学习和树搜索进行从零开始的既快又慢的学习
- 使用深度学习和树搜索进行从零开始的既快又慢的学习
- 教你如何使用Google进行搜索
- 教你如何使用Google进行搜索
- 使用ORACLE TEXT进行文本搜索
- domino使用URL进行数据搜索
- 海量索引数据的机群分布
- C#加密解密
- 用emacs玩转图形学的光线追踪
- using namespace std
- spring整合hibernate关于session的管理
- 使用DirectoryWalker和FileFilterUtils进行搜索
- oracle 查询隐含参数语句
- 开明关系系列
- WinCE EBOOT中的Optional函数
- poj2612
- 在WinCE 6.0系统下实现USB功能定制
- pku2186 popular cows
- Hadoop报错“could only be replicated to 0 nodes, instead of 1”
- 安博之行