1、 用应用程序实现对文件夹的遍历。
a) 在d:盘根目录下建立目录dirc;
b) 在该目录下建立子目录至少3个;
c) 在每个目录下(包含dirc目录),建立至少2个文件,文件类型任意;
d) 在运行时输入参数指定程序遍历d:\dirc目录;
e) 将遍历结果按列表方式存入文本文件d:\dirc.txt;

解决方案 »

  1.   

    很晚了,要休息了。给你找了一下,你自己再自己整理一下吧。
    http://topic.csdn.net/u/20080408/16/6ca556c7-dd22-4a87-98b6-b0525222a1a8.html?1952875181
    http://hi.baidu.com/wangyuquansky/blog/item/028ec927b42ed907908f9dc5.html
      

  2.   


    你可以:
    [code=Java]
    package demo;import java.io.*;
    import java.util.LinkedList;public class FileSystem{    public static void main(String[] args){
            
            long a = System.currentTimeMillis();
            
            LinkedList<File> list = new LinkedList<File>();
            File dir = new File("D:\dirc\");
            File file[] = dir.listFiles();        File outputFile=new File("d:\dirc.txt"); //保存输出数据
             FileWriter writer=new FileWriter(outputFile);         for (int i = 0; i < file.length; i++){
                if (file[i].isDirectory()){
                    list.add(file[i]);
                }
                else{
                    //System.out.println(file[i].getAbsolutePath());
                    //你要是输出到文件里在这里修改一下就可以了,可以改为
                     writer.write(file[i].getAbsolutePath());
                  }
            }
            File tmp;
            while (!list.isEmpty()){
                tmp = list.removeFirst();
                if (tmp.isDirectory()){
                    file = tmp.listFiles();
                    if (file == null)
                        continue;
                    for (int i = 0; i < file.length; i++){
                        if (file[i].isDirectory())
                            list.add(file[i]);
                        else
                            //System.out.println(file[i].getAbsolutePath());
                            //和上面解释一样
                            writer.write(file[i].getAbsolutePath());
                    }
                } else{
                    //System.out.println(tmp.getAbsolutePath());
                    //和上面解释一样
                       writer.write(tmp.getAbsolutePath());
                }
            }
            
            System.out.println(System.currentTimeMillis() - a);    }
        writer.close(); //流和文件关闭
        outputFile.close(); }
      

  3.   

    你可以:package demo;import java.io.*;
    import java.util.LinkedList;public class FileSystem{    public static void main(String[] args){
            
            long a = System.currentTimeMillis();
            
            LinkedList<File> list = new LinkedList<File>();
            File dir = new File("D:\dirc\");
            File file[] = dir.listFiles();        File outputFile=new File("d:\dirc.txt"); //保存输出数据
             FileWriter writer=new FileWriter(outputFile);         for (int i = 0; i < file.length; i++){
                if (file[i].isDirectory()){
                    list.add(file[i]);
                }
                else{
                    //System.out.println(file[i].getAbsolutePath());
                    //你要是输出到文件里在这里修改一下就可以了,可以改为
                     writer.write(file[i].getAbsolutePath());
                  }
            }
            File tmp;
            while (!list.isEmpty()){
                tmp = list.removeFirst();
                if (tmp.isDirectory()){
                    file = tmp.listFiles();
                    if (file == null)
                        continue;
                    for (int i = 0; i < file.length; i++){
                        if (file[i].isDirectory())
                            list.add(file[i]);
                        else
                            //System.out.println(file[i].getAbsolutePath());
                            //和上面解释一样
                            writer.write(file[i].getAbsolutePath());
                    }
                } else{
                    //System.out.println(tmp.getAbsolutePath());
                    //和上面解释一样
                       writer.write(tmp.getAbsolutePath());
                }
            }
            
            System.out.println(System.currentTimeMillis() - a);    }
        writer.close(); //流和文件关闭
        outputFile.close(); }
      

  4.   

    有一点不明白
    a,b,c三个条件是自己建立还是用程序建立
    下面的是手动建立import java.util.*;
    import java.io.*;
    public class TestFile {
    public static void main(String[] args) {
    File begin = null;
    LinkedList<File> ll = new LinkedList<File>();
    String rd = null;
    BufferedReader br = null;
    BufferedWriter f = null;
    try {
     br = new BufferedReader(new InputStreamReader(System.in));
     System.out.println("请输入目录:");
     rd = br.readLine();
     travel(new File(rd),ll);
     f = new BufferedWriter(new FileWriter(new File("d:\\dirc.txt")));
     for (int i = 0; i < ll.size();i++) {
      f.write(ll.get(i).toString(),0,ll.get(i).toString().length());
      //f.write("\n");
      f.newLine();
     }
     br.close();
     f.close();
     
    } catch (FileNotFoundException e1) {
    e1.printStackTrace();
    } catch (IOException e2) {
    e2.printStackTrace();
    }
    }

    public static void travel(File f,LinkedList<File> lf) {//递归函数遍历目录
    if (f.isDirectory()) {
    File[] arr = f.listFiles();
     for(int i = 0;i < arr.length;i++) {
      travel(arr[i],lf);
          }
    } else {
    lf.add(f);
    }
    }
    }