有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JFileChooser:仅列出以特定文本字符串开头的文件

我想用JFileChooser显示给定文件夹中所有文件的列表,但只显示那些以某个字符串开头的文件,而与它们的扩展名无关。这是因为我有一个文件夹,其中的文件具有相同的名称,用于3-4个不同的扩展名,例如:<&书信电报;“customers.xls、customers.doc、customers.pdf、sales.xls、sales.txt、sales.doc…”; 程序将从输入/用户处获得特定的文件名,我希望显示与给定名称匹配的所有文件。 就我到现在为止所做的而言,我要做的就是找到如何只对扩展进行过滤,而扩展并不能管理我所需要的。。。有什么提示吗? 谢谢


共 (2) 个答案

  1. # 1 楼答案

    为其创建自定义文件筛选器:

    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);
    
  2. # 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);