本帖最后由 pkjjun2012 于 2012-09-24 08:57:29 编辑

解决方案 »

  1.   


    class MyFilter implements FilenameFilter
    {
      public boolean accept(File dir,String name) {  
        return (name.endsWith(".java")) || dir.isDirectory();
      }
    }
    dir 不是你要检查的当前文件,而是它的parentdir.isDirectory(); -> new File(dir, name).isDirectory();
      

  2.   

    dir.isDirectory()这个返回的值一直是true,这里是判断D:\\study\\heima\\review是不是文件夹,很明显D:\\study\\heima\\review是一个文件夹,所以它一直返回true,故而打印D:\\study\\heima\\review文件夹下面的所有文件
      

  3.   

    谢谢你们,.1L。。问题解决了。但是new File(dir, name)这里封装,我不是很明白,
    可以仔细说下么? 或者说为什么这么封装,过滤器就懂了
      

  4.   

    你可以用debug模式运行一下,在listJava(dir,list);处加个断点,看看它执行顺序是怎样的
      

  5.   

    不会用我知道c和c++可以用软件。设置断点。java的我目前还只在控制台上。。不会呢
      

  6.   


    new File(dir, name) 就是说,“在 dir 这个路径下,以 name 为文件名的那个文件”