如d:\ex\1.java
       \2.java
       \tt\1.java
          \2.java
        \ss\1.java
           \2.java
            \aa\1.java
                \2.java

解决方案 »

  1.   

    简单写一下算法:listAll( String dir )
    File f = new File(dir)
    String[] s = f.list();
    for( int i = 0; i < s.length; i++ )
    if( new File( s[i] ).isDirectory() )
      listAll( s[i] )
    else
      // do something如果要效率,就用栈遍历
      

  2.   

    public static void searchFile(String pathname)
    {
       String[] mFiles = getFileList(pathname);
       for(int i=0;i<mFiles.length;i++)
      {
          pathname = pathname + mFiles[i];
          searchaFile(pathname);
      }
    }
      

  3.   

    补“浪子” :
    public class Test{
      public static void main(String[] args){
         File docs= new File("C:/My Documents");     File[] javaSources = docs.listFiles(new FilenameFilter(){
             public boolean accept(File dir, String name) {
                return name.endsWith(".java");
             }
           }); // 仅返回 *.java 文件。     File[] folders = docs.listFiles( new FileFilter(){
            public boolean accept(File path) {
     return path.isDirectory()
      && !path.getName().equalsIgnoreCase("WEB-INF");
     }
            }); // 不返回 WEB-INF 目录。    如果要递归就再对 返回的  File[] 再 listFiles 。
     } }
      

  4.   

    wangbo1118(编程浪子) 的方法吧,用递归