再问个关于FilenameFilter的问题,望大牛指教

问题描述

关于该接口中的第一个参数File对象,我实在想不出他在方法里有什么用处。。。我看了一下File类里面的带参的list方法,他里面也只是把this对象传给了accept方法,也就是把调用带参list方法的那个文件对象传递进去,但是accept的方法的实现过程里丝毫用不到File对象的东西,就可以达到按指定后缀或者字符串过滤的功能不是?。。。各位有何高见啊。。。本人是新手,莫喷我啊

解决方案

解决方案二:
acceptbooleanaccept(Filedir,Stringname)测试指定文件是否应该包含在某一文件列表中。参数:dir-被找到的文件所在的目录。name-文件的名称。返回:当且仅当该名称应该包含在文件列表中时返回true;否则返回false。例如如果当前为一目录,应该返回trueif(dir.isDirectory()){returntrue;}否则你连目录都看不到
解决方案三:
返回:当且仅当该名称应该包含在文件列表中时返回true;否则返回false。
解决方案四:
publicString[]list(FilenameFilterfilter){Stringnames[]=list();if((names==null)||(filter==null)){returnnames;}ArrayListv=newArrayList();for(inti=0;i<names.length;i++){if(filter.accept(this,names[i])){v.add(names[i]);}}return(String[])(v.toArray(newString[0]));}这段是从jdk的File类里考出来的,一个文件对象在调用他自己的list(带参)方法是,实际上是先调用他的list()方法得到当前目录下的文件的String数组。。。然后再调用accept方法。。那么也就是说调用accept方法是已经进入到目录了呀。。。btw:谢谢你。。。引用1楼windforcecn的回复:

acceptbooleanaccept(Filedir,       Stringname)测试指定文件是否应该包含在某一文件列表中。参数:dir-被找到的文件所在的目录。name-文件的名称。返回:当且仅当该名称应该包含在文件列表中时返回true;否则返回false。例如如果当前为一目录,应该返回trueif(dir.isDirectory()){returntrue;}否则你连目录都看不到

解决方案五:
对,但是文件列表在调用accept时已经得到了。。。我的理解是,list(带参)方法只能被文件(夹)对象调用,也就是fileobject.list(newFilenameFilter()),文件列表就是fileobject的列表啊,我已经得到了,不明白为什么还需要再在接口中显式的用一个参数来表示呢。。。引用2楼swandragon的回复:

返回:当且仅当该名称应该包含在文件列表中时返回true;否则返回false。

时间: 2024-10-26 18:32:42

再问个关于FilenameFilter的问题,望大牛指教的相关文章

厚着脸皮再问Directory.GetFiles路径问题,似乎找到了影响因素,但不明白原因

问题描述 厚着脸皮再问Directory.GetFiles路径问题,似乎找到了影响因素,但不明白原因 厚着脸皮再问Directory.GetFiles路径问题.我 似乎(因为我不确定是否还有别的因素影响) 找到了出现不同结果(方法①OK,方法②却报错)的影响因素,但不明白原因. 麻烦各位老师再看看,十分感谢. 注:我看的视频教程里,授课老师一直都是用方法①,方法②是我自己尝试的. 解决方案 不要看你的视频,删除你的文件夹,重新创建一个控制台项目,只添加如下代码: using System.IO;

关于栈的东西再问一下,当定义2个变量的时候char a,int b

问题描述 关于栈的东西再问一下,当定义2个变量的时候char a,int b 是先把a放到栈里面,再把B放进去,如果然后我要对a进行操作怎么办,栈是先进后出,a在下面b在上面,我能在不移走b的情况下对a进行操作吗 解决方案 Stack是FILO的数据结构,要出栈必须要先移出B. 解决方案二: 不可改变位置,只可改变值 解决方案三: 不可以的,栈的特性决定了必须b先出去,才能操作a

再问一个关于VB6.0指针和地址的问题

问题描述 再问一个关于VB6.0指针和地址的问题 在VB6.0语言中,字符串为什么不像C++那样需要使用来作为结束呢?那么内存的分配需要么? 解决方案 http://useway.blog.51cto.com/736087/174661/ 解决方案二: 肯定需要分配,在计算机中运行的任何东西,包括你听到的声音和看到的画面,一定都是要先加载到内存才行 解决方案三: vb6.0 中 事务处理的一个问题

记者问题惹恼丁俊晖:请你看懂台球再问我

北京时间4月4日,2010年斯诺克中国公开赛决赛落下帷幕,结果威尔士选手马克-威廉姆斯在上半场落后的情况下绝地反击,最终以10-6战胜了丁俊晖,夺得了冠军. 随着威廉姆斯将黄球打飞,丁俊晖的中国赛冠军梦也飞了,比赛结束的那一刹那,丁俊晖平静的与对手握手致意并祝贺,随后的颁奖仪式上,小晖也很开心的领取奖励,面带笑容的与嘉宾合影,但你要是认为输掉决赛没有影响到他的心情,那么你就错了. 颁奖仪式后的新闻发布会上,丁俊晖还是表现出了一点不开心:当有记者问他,下半场大比分落后时,是否有想过放弃比赛,他这样

问个android json解析问题 麻烦大牛回答一下 谢谢!

问题描述 问个android json解析问题 麻烦大牛回答一下 谢谢! { "code": 200, "datas": { "banner_info": [ { "pic_name": "冬季名品-大牌季节日", "phone_pic_img": "" }, { "pic_name": "全套茶具专场-年终盛典", "

别再问我用什么软件做网页了?

在大学暑假的某天,接触到第一个客户,客户第一个问了自以为很专业的问题. 「你是用什么软件做网站?」 我当下只是有点疑惑,因为在看老外们教学都是直接用 Notepad++,然后就直接写 html.css.js 这样,根本没有特别用什么软件,不过是在书局看过很多关于 Dreamweaver 网页设计 101 之类的书,甚至到现在,你还是可以找到很多 Dreamweaver 的课程啊,书记啊之类的,高中还有一个叫做 frontpage,是微软的. 我对于用什么软件编辑网页本来是无感,反正出来的目的是一

再问关于RDLC报表的问题

问题描述 前一段时间问了一个关于RDLC的问题,就一位朋友回答,但到现在还没解决问题,就暂时放下了现在必须要解决了,希望懂的朋友帮忙给看下,谢谢项目背景是这样的,一个管理系统,大概有90多个报表,如果一个报表一个报表的设计DATASET.XSD也是可以的,但是这种解决方法有些笨,就想不设计XSD,直接通过查询将结果放入DATASET中再给报表指定数据源,直接报表文件来实现,有位朋友再网上找了一篇帖子http://www.cnblogs.com/lmarsy/archive/2010/02/02/

别再问零基础怎么入门交互设计了!

所有群里最常见的新人问题就是--零基础怎么学习交互设计?其实,很多时候零基础不可怕,但最怕的就是零基础带来的那种浮躁,比如往往他们都追求速成.每个职业人都有零基础的时候(废话),而在社会上获得工作机会又要求你有相关经验,于是这就形成了一个新人最恐惧的矛盾--越没经验越没机会,越没机会越没经验. 今天给大家推荐一些我个人认为相对靠谱的零基础学习途径,做完这些,想直接去 BAT 校招应该是可以一战的,或者退一步去一个小型公司进一步积累经验应该也会有很大的希望. 1.Design Guidelines

别再问我做一个网站多少钱了!

「一辆车子多少钱?一个房子多少钱?」   这问题在工程师或设计师的眼里就如「一辆车子多少钱?一个房子多少钱?」,这个问题实在空泛到一个让人无法言语的境界,这也是我最常被问到的问题「做一个网站多少钱?」.说真的我大概能了解提问人的想法,或许只要说出个大概就是他们要的答案,例如说个多少X千和多少X万之间,或许我的职业病,我实在没有办法容忍这种不明确的答案.   为何我回答不了这个问题的原因大概是,最起码,给我一个参考的范例嘛,例如你问「这一台这样的车子,二手的,T牌2005年产,你估多少?」虽然提供