使用FileFilter搜索文件

如何快速的按照特定要求找出所有文件呢?试试java.io.FileFilter 吧。

FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中。他的主要作用就是检测文件是否存在。FileFilter 和他的前身FilenameFilter 唯一的不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的。

例如,FileFilter 是这样的:
   boolean accept(File file);
而FilenameFilter 却是以下的样子:
   boolean accept(File directory, String name);

一个简单的例子是搜索特定的文件扩展名。你可以使用FilenameFilter ,但是出来的结果会让你很难判断到底是文件夹还是文件。要解决这个问题,你需要使用文件对象。也就是使用FileFilter吧。

以下是ExtensionFileFilter 的代码:
package com.generationjava.io.find;

import java.io.File;
import java.io.FileFilter;

public class ExtensionFileFilter implements FileFilter {

    private String extension;

    public ExtensionFileFilter(String extension) {
        this.extension = extension;
    }

    public boolean accept(File file) {
        if(file.isDirectory( )) {
            return false;
        }

        String name = file.getName( );
        // find the last
        int idx = name.lastIndexOf(".");
        if(index == -1) {
            return false;
        } else
        if(index == name.length( ) -1) {
            return false;
        } else {
            return this.extension.equals(name.substring(index+1));
        }
    }
}
以下的例子中用到了上述的ExtensionFileFilter 代码:
...
String dir = "...";   // directory of your choice
File file = new File(dir);
File[] files = file.listFiles(new ExtensionFileFilter("cfg"));

// files variable is now c:\*.cfg if 'dir' is c:\
// that is, all the files in the specified directory ending in *.cfg
...
FileFilter 其实是从 javax.swing.filechooser.FileFilter派生出来的,javax.swing.filechooser.FileFilter 是使用JFileChoosers的抽象类。

时间: 2024-09-17 04:07:28

使用FileFilter搜索文件的相关文章

在Java中使用FileFilter搜索文件

FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中.他的主要作用就是检测文件是否存在.FileFilter 和他的前身FilenameFilter 唯一的不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的. 例如,FileFilter 是这样的: boolean accept(File file); 而FilenameFilter 却是以下的样子: boolean accept(

eMule如何搜索文件

  在eMule(电骡)中搜索文件常常意味着会向服务器列表中的所有服务器发出查询请求,询问是否知道在其他客户那里拥有搜索关键词所匹配的某个文件.这些服务器自身并不存储任何文件,仅仅索引所有连接上客户的文件列表. eMule中的高级搜索方法可以支持在网络中更精确的来搜索文件.最好尽量使用精确的搜索,因为每一次搜索都会给服务器带来一定的负载.因此,eMule每次仅会获取最多300个匹配的结果,如果需要查看超过300个的更多结果可以点击更多按钮,在服务器搜索中最大能够支持查询到1800个结果. 名字

python实现的用于搜索文件并进行内容替换的类实例

  本文实例讲述了python实现的用于搜索文件并进行内容替换的类.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6

Linux如何搜索文件的方法

  在Linux上查找某个文件是一件比较麻烦的事情.毕竟在Linux中需要我们使用专用的"查找"命令来寻找在硬盘上的文件. Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式,那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到.Linux中查找文件的命令通常为"find"命令,"find"命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件

win7系统搜索文件速度很慢如何提升搜索速度

  win7系统搜索文件速度很慢如何提升搜索速度          具体方法如下: 1.打开计算机的界面,选择左侧导航栏中的库; 2.新建一个库文件.右击--选择新建--库.库的名字随便起即可; 3.创建库中的关联文件.双击新建的库文件,在弹出的界面中点击选择文件夹.我们要搜索哪个盘就将库包含的磁盘直接选中即可; 4.选择包含文件夹,这时就会出现D盘中的所有文件夹,在个显示是在库总显示的,区别就是下面,在这里进行文件的搜索非常的快速; 5.搜索你要找的文件名或是关键字,进行搜索功能.在你输入关键

电驴eMule怎么搜索文件

  用电驴下载电影,你看一辈子电影都看不完.我计算一下,假如你1分钟看1部(太夸张了吧),从出生开始一直活到100岁,每天不吃不喝直到看电影看死,总共可以看大概5000万多部电影.而此时此刻我用电驴搜索到的可下载的文件数目超过9000多万个,如果10%是视频文件的话,也有900万部,这只是今天可以下载的数目.人的岁数有限,而每时每刻又有源源不断的视频文件加入,显然你永远赶不上此发展的脚步.搜索其实很简单,会用Google等搜索引擎,就应该会用电驴搜索,只不过一个是搜索网页,一个是搜索文件. 点"

Win8.1在文件资源管理器中搜索文件

  若要在文件资源管理器中搜索文件,请打开文件资源管理器并使用右上角的搜索框. 通过以下方式打开"这台电脑":从屏幕的右边缘向中间轻扫,点击"搜索"(如果使用鼠标,则指向屏幕的右上角,然后将鼠标指针向下移动,再单击"搜索"),在搜索框中输入这台电脑,然后点击或单击"这台电脑". 搜索功能会在你查看位置的所有文件夹和子文件夹中查找. 在搜索框内点击或单击时,将显示"搜索工具"选项卡. 输入搜索词后,将开始显示

Filelocator怎么按文档内容搜索文件

  Filelocator按文档内容搜索文件教程: 1.下载并安装Filelocator pro,下面有小编整理的下载地址! 2.打开Filelocator pro. (1)在包含文本中输入你要搜索的文本.比如我想找一份包含"安下"的WORD文档,就输入"安下"即可.如果你对通配符.布尔表达式等高级用法比较熟悉,可以勾选右边的"专家用户". (2)确定查找位置,点击"浏览"按钮选择你要查找的位置.比如我已知道要找的WORD文档

加快win7系统搜索文件速度的方法

对于一些文件大户,比如你是制版的,设计的,排版的那么你的电脑中一定有非常非常多的文件,由于文件太多我们不可能完全记住文件存放在什么地方这时候大家经常使用的就是win7系统的文件搜索功能了,不过有的朋友不满意win7系统搜索文件的速度,我们可以通过一些搜索设置来加快搜索文件的快速性. 在搜索设置中,我们主要通过清除一些无用的引索来达到加快搜索速度的目的,下面看操作方法: 第一步:右击任务栏--选择属性,在开始菜单设置界面,点缶自定义按钮; 第二步. 在"自定义'开始'菜单"窗口,拖动上方