大家好:
  小弟很想试着自己写一个实现遍历目录的类,就是把我设置的路径一下的文件夹都打印出来
写了一个,无奈太笨非常不成功。
  大伙帮我看看还能改么,要是能改尽量帮我改改这段代码。谢谢了!import java.io.*;
public class find {
public String directory(String path) throws IOException {
File d=new File(path);
path=d.getCanonicalPath();
if(!d.exists()){
throw new FileNotFoundException();
}
else{
File list[]=d.listFiles();
System.out.println(path+"目录下的文件夹:");
for(int i=0;i<list.length;i++)
{
if(list[i].isDirectory())
{
System.out.println(list[i].getName());
}
else
{
path +=list.length;
}
}
return path;
}
}
public static void main(String[] args)
{
try{
find ff=new find();

String ss=(String)ff.directory("D:/");
System.out.println(ss);
}
catch(Exception e)
{
 e.printStackTrace();
}
}}

解决方案 »

  1.   

    留下邮箱,给你发个FileUtil类
      

  2.   

    import java.io.*;public class Find {
    public String directory(String path) throws IOException {
    File d=new File(path);
    path=d.getCanonicalPath();
    if(!d.exists()){
    throw new FileNotFoundException();
    }
    else{
    File list[]=d.listFiles();
    System.out.println(path+"目录下的文件夹:");
    for(int i=0;i<list.length;i++)
    {
    if(list[i].isDirectory())
    {
    System.out.println(path + "\\" + list[i].getName());
    directory(path + "\\" + list[i].getName());
    }
    else
    {
    System.out.println(list[i].getName());
    path +=list.length;
    }
    }
    return path;
    }
    }
    public static void main(String[] args)
    {
    try{
    Find ff=new Find();

    String ss=(String)ff.directory("bin");
    System.out.println(ss);
    }
    catch(Exception e)
    {
     e.printStackTrace();
    }
    }}
      

  3.   

    String ss=(String)ff.directory("bin");  还改回“D:/”
      

  4.   

    http://www.dengfeng.gov.cn/bbs/index.phps=36bd09c8191da083df29b19b9dac8849&act=ST&f=6&t=155
      

  5.   

    用dom应该也可以把,效率可能会高一点
      

  6.   

    //aspath 路径
    public void getfile(String aspath)
    {
    System.out.println("文件夹:" + aspath);
    File objFile = new File(aspath);
    File[] objList=objFile.listFiles();
    for(int i=0;i<objList.length;i++)
    {
    //objList[i]是一个File类型的
    if (objList[i].isDirectory()) 
    {
    this.getfile(objList[i].getPath());
    System.out.println("文件夹:" + aspath);
    }
    else
         System.out.println("第"+i+"个文件名:"+objList[i].getName());
    }
    }
      

  7.   

    来个简单的:
        
        public static void readFolder(String s){
            File io = new File(s);
            if (io.isDirectory()) {
             System.out.println(s + ":");
            File[] file = io.listFiles();
            for (int i = 0; i < file.length; i++) {
             readFolder(file[i].getPath());
            }
            }
            else {
             System.out.println("\t" + io.getPath());
            }
        }