JFileChooser:仅列出以特定文本字符串

时间:2018-01-19 11:17:17

标签: java jfilechooser

我想用JFileChooser显示给定文件夹中所有文件的列表,但只显示以某个字符串开头的文件,而不管它们的结尾扩展名。这是因为我有一个文件夹,文件的名称与3-4个不同的扩展名相同,例如ie:<<“customers.xls,customers.doc,customers.pdf,sales.xls,sales.txt, sales.doc ...>> 程序将从输入/用户获取某个文件名,我希望显示与给定名称匹配的所有文件。 至于我现在直到管理,是找到如何仅对扩展进行过滤,这不能管理我需要的...任何暗示? 谢谢!

2 个答案:

答案 0 :(得分:0)

为它创建一个自定义FileFilter:

JFileChooser jfc = ...;
String filePrefix = "customers";
FileFilter ff = new FileFilter() {
    public boolean accept(File f) {
        return f.getName().startsWith(filePrefix);
    }

    public String getDescription(){
        return "Custom Files";
    }
}

jfc.setFileFilter(ff);

答案 1 :(得分:0)

使用FileFilter:

定义:

class MyFilter implements FileFilter {

    String prefix;

    void setPrefix(String prefix) {
        this.prefix = prefix
    }

    public String getDescription() {
        return "MyFiles";
    }

    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        } else {
            return f.getName().startsWith(prefix);
        }
    }
}

用法:

MyFilter myFilter = new MyFilter();
myFilter.setPrefix("customer");

JFileChooser fileChooser = new JFileChooser();
fileChooser.addChoosableFileFilter(myFilter);