在java中,怎么用文件的读写,去遍历整个磁盘,并把文件的绝对路径写入一个txt中?求教?

解决方案 »

  1.   

    File.listRoots( ),获取盘符列表,然后递归遍历……File.list()你应该会吧。
      

  2.   

    你说具体点,我写了个不合适,跑着跑着就不行了,先谢谢了
    package Test;import java.io.File;public class checkTest {
    public static void main(String[] args) {
    checkTest files = new checkTest();
    File[] disks = File.listRoots();
    for (int i = 0; i < disks.length; i++) {
    File disk = disks[i];
    files.getFiles(disk.getAbsolutePath());
    }
    System.out.println("运行完成!");
    } public void getFiles(String path) {
    File dir = new File(path);
    File[] files = dir.listFiles();
    for (int i = 0; i < files.length; i++) {
    try {
    File file = files[i];
    if (file.isDirectory()) {
    getFiles(file.getAbsolutePath());
    }
    if (file.isFile()) {
    System.out.println(file.getAbsolutePath());
    }
    } catch (NullPointerException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    }
      

  3.   

    我刚学java了,还忘大家多多指教了
      

  4.   

    dir.listFiles() 可能返回空值,你要先做检查才行。
      

  5.   


    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;public class ListDir {

    public static void main(String[] args) {
    list("E:\\work\\whj\\src");
    }

    public static void list(String path) {
    File f = new File(path);
    if (f.isDirectory()) { // 如果是文件夹,则递归遍历
    // 取文件夹下所有文件
    File[] array = f.listFiles();
    for (int i = 0; i < array.length; i++) {
    list(array[i].getPath());
    }
    } else {
    try {
    FileWriter out=new FileWriter(new File("C:/txt.txt"),true);
    out.write(f.getName()+"\r\n");
    out.flush();
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    // 如果是文件输出文件名,这里可以做删除等操作
    System.out.println(f.getName());
    }
    }
    }
      

  6.   

    我晓得C#的获得系统的所以文件,java我还没试过