what is your exception?

解决方案 »

  1.   

    File allfile[]=f1.listFiles();定义的数组大小不足于容下你遍历的各个目录下所有文件
    这个allfile只是当前目录和文件的数量
    要保证allfile足够大,可以使用集合啊。
      

  2.   

    public class temp
    {
      public static void main(String[] args)
      {
        temp r = new temp();
        r.Listfilter("d:/temp","jpg");
      }
      
      
      public static void Listfilter(String path,String ext)
      {
       File f=new File(path);
        if(f.isDirectory() ){
          File files[]=f.listFiles() ;
          for (int i = 0; i < files.length; i++) {
            Listfilter(files[i].toString(),ext);
          }
        }
        else{
          String name = f.getName();
          int len = name.length();
          if(name.endsWith(ext))
          System.out.println(f.toString());
        }
      }
    }
    这样就可以了!哈哈!
      

  3.   

    import java.io.*;public class temp
    {
      public static void main(String[] args)
      {
        temp r = new temp();
        r.Listfilter("d:/temp","rm");
      }
      
      
      public static void Listfilter(String path,String ext)
      {
       try
       {
       File f=new File(path);
        if(f.isDirectory() ){
          File files[]=f.listFiles() ;
          for (int i = 0; i < files.length; i++) {
            Listfilter(files[i].toString(),ext);
          }
        }
        else{
          String name = f.getName();
          int len = name.length();
          if(name.endsWith(ext))
          System.out.println(f.toString());
        }
    }catch(Exception ex)
    {
    System.out.println(ex);
    }
      }
    }
    这个没有一点问题呀!测试过的!什么异常!
    你要注意你的目录!传进来的时候要d:/temp!
    你直接在你机器上建立一个d:/temp目录!测试一下!