JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
java8新特征详解
java文件操作专题教程

知识点

相关文章

更多

最近更新

更多

Java使用FileFilter过滤文件

2019-03-17 14:42|来源: 网路

FileFilter的主要作用就是检测文件是否存在,但也提供文件过滤功能。FileFilter 和FilenameFilter 唯一的不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的。

private class FileFilter1 implements FileFilter{
    @Override
    public boolean accept(File file) {
        return file.getName().endsWith(".txt");
    }
}
 
@Test
public void test(){
    File[] files = new File("/home/hadoop").listFiles(new FileFilter1());
     
    for(File file:files){
        System.out.println(file.getName());
    }
}


获取隐藏文件

用户File的isHidden方法即可

public class FileHiddenName implements FileFilter {  
  @Override
  public boolean accept(File pathname) {
   // TODO Auto-generated method stub
   return pathname.isHidden();
  }

}

整理于网络

相关问答

更多
  • 在这里你会找到一些工作的例子。 这也是JFileChooser中使用的FileFilter的一个很好的例子。 基础知识是,您需要重写FileFilter类并将自定义代码写入其accpet方法。 上例中的accept方法根据文件类型进行过滤: public boolean accept(File file) { if (file.isDirectory()) { return true; } else { String path = file.getAbsolutePa ...
  • 尝试使用fileChooser.setFileFilter(filter)而不是fileChooser.addChoosableFileFilter(filter); Try and use fileChooser.setFileFilter(filter) instead of fileChooser.addChoosableFileFilter(filter);
  • 我发现你很担心把文本放在文件名框中,但这正是你需要做的,似乎是你的情况的规范。 我挂断了完全相同的问题。 这是我用过的: Public Sub Browse_Click() Dim fileName As String Dim result As Integer Dim fs With Application.FileDialog(msoFileDialogFilePicker) .Title = "Select Test File" .Filters.Add "Text File", ...
  • 您应该使用WildcardFileFilter ,因为FileFilter是一个抽象基类: fileChooser->setFileFilter(WildcardFileFilter("*.wav", "*", "somedescription")); 文档 。 请注意, setFileFilter要求提供一个const* ,这意味着您必须管理它的生命周期。 在这一刻,你传递一个临时文件,将会使用悬挂指针离开fileChooser ,你应该使用更长的生命周期。 You should use a Wildc ...
  • 是的,如评论中所述,您无法获取路由的ID等,在FileFilter方法中,您只能从GenericFile获取文件信息。 Yes as said in the comments, you cannot get the id of the route etc, in the FileFilter method, you can only get file information from the GenericFile.
  • 您可以轻松编写自己的FileFilter ,而不是尝试使WildcardFileFilter执行它不应该执行的操作, 包括与通配符匹配的文件... FileFilter fileFilter = new FileFilter() { @Override public boolean accept(File pathname) { return ! pathname.getPath().endsWith("-path.mp4"); } }; 这是非常具体的问题 ...
  • 我猜setFileFilter这个名字setFileFilter会引起误解,因为它在现实中的作用是设置选定的文件过滤器(无需替换其他过滤器)。 如果要回收JFileChooser ,最简单的解决方案是在设置新过滤器之前调用resetChoosableFileFilters() 。 第一个选择的代码 fileChooser.setFileFilter(new FileNameExtensionFilter("File fasta", "fas")); 第二个选择的代码 // delete name of p ...
  • import javax.swing.filechooser.FileFilter; 这是错误的FileFilter类。 你要 import java.io.FileFilter; 代替。 import javax.swing.filechooser.FileFilter; That's the wrong FileFilter class. You want import java.io.FileFilter; instead.
  • 你需要使用 final FileFilter directoryFilter = File::isDirectory; 此方法引用与您编写的lambda表达式pathname -> pathname.isDirectory()完全相同。 使用语法ContainingType::methodName方法引用用于引用ContainingType类型的任意对象的实例方法。 方法引用test::isDirectory实际上会引用特定test实例上的实例方法isDirectory (不适用于任意File实例)。 Y ...
  • 从JDK 1.6源代码: public String[] list(FilenameFilter filter) { String names[] = list(); if ((names == null) || (filter == null)) { return names; } ArrayList v = new ArrayList(); for (int i = 0 ; i < names.length ; i++) { if ...