【问题标题】:JFileChooser: listing only files which start with a certain text string [duplicate]JFileChooser:仅列出以某个文本字符串开头的文件[重复]
【发布时间】:2018-01-19 11:17:17
【问题描述】:

我想用 JFileChooser 显示给定文件夹中所有文件的列表,但只有那些以特定字符串开头的文件,与它们结束扩展名无关。这是因为我有一个文件夹,其中包含 3-4 个不同扩展名的同名文件,比如说:> 该程序将从输入/用户获取某个文件名,我希望显示与给定名称匹配的所有文件。 就我到目前为止所管理的而言,是找到如何仅在扩展上进行过滤,这不能管理我需要的内容......对此有任何提示吗? 谢谢!

【问题讨论】:

  • 看看here。这是一个适用于目录的解决方案,但您可以调整使用的文件过滤器。

标签: java jfilechooser


【解决方案1】:

为它创建一个自定义的 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);

【讨论】:

  • 小巧简洁...非常感谢!
  • @PaulEfford 如果您接受适合您的答案,那就太好了。
【解决方案2】:

使用文件过滤器:

定义:

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);

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 2019-12-21
    • 2014-12-02
    • 2022-07-06
    • 2022-10-07
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    相关资源
    最近更新 更多