A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static void main(String[] args) {
  //文件名称过滤器
     File dir = new File("E:\\");   
  //File(String pathname):根据一个路径得到File对象
     String[] arr = dir.list(new FilenameFilter() {  
  //FilenameFilter() 实现此接口的类实例可用于过滤器文件名。
  //Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。
      
       @Override
       public boolean accept(File dir, String name) {
         //System.out.println(dir);
         //System.out.println(name);
         File file = new File(dir, name);  
   //File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
         return file.isFile() && file.getName().endsWith(".jpg");
       }    //(boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾)
     });
}
//部分原码:    上面是过滤器,下面可以看看,不需要打入
    public String[] list(FilenameFilter filter) {
      String names[] = list();//获取到文件/文件夹名称数组
      if ((names == null) || (filter == null)) {//如果list()中没有内容或者没有传过滤器就返回
          return names;
      }
      List<String> v = new ArrayList<>();
      for (int i = 0 ; i < names.length ; i++) {//在遍历的过程中,调用accept方法判断
                              //accept方法需要手动定义过滤条件
          if (filter.accept(this, names[i])) {  //如果accept返回true,满足条件,存入集合
              v.add(names[i]);            //否则不存
          }
      }
      return v.toArray(new String[v.size()]);//最终集合存储满足条件的元素,转换成数组返回
  }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马