求;把c盘下的所有文件及文件夹以文件树的形式储存到d盘的1.txt       。急

解决方案 »

  1.   

    可以用dos中的tree /f 命令,将结果重定向到d盘的1.txt就可以了。
    如果用java调用的话(Runtime.exec(String command) ),可以写一个bat,在bat里将tree /f 的结果重定向到d盘的1.txt.
      

  2.   

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.List;
    public class FindFiles { public static void main(String[] args) {
    List<String> fileList=new ArrayList<String>();
    printFiles("C:\\", fileList);   
    try {
    BufferedWriter out = new BufferedWriter(new FileWriter("c:\\filelist.txt"));
        Iterator it=fileList.iterator();
        while(it.hasNext())
         out.write((String)it.next()+"\n");             
        out.close();
    } catch (IOException ioe) { }
    }

    public static void printFiles(String dir, List fileList){
    File root = new File(dir);
    if (!root.exists()) return;
    File elements[] = root.listFiles();
    Arrays.sort( elements, new Comparator()
        {
          public int compare(final Object o1, final Object o2) {
         if (((File)o1).isFile() && ((File)o2).isDirectory())
         return -1;
         else if (((File)o2).isFile() && ((File)o1).isDirectory())
         return 1;
         else
         return ((File)o1).compareTo(((File)o2));
          }
        });
    for (int i = 0;i<elements.length;i++){
    if (elements[i].isFile()){
    fileList.add(elements[i].getPath());
    }
    else 
    printFiles(elements[i].getPath(), fileList);
    }
    }}
      

  3.   

    http://www.5fuyou.com/images/head/DownLoad.html 分享一个编程视频下载地址,很好,很强大
      

  4.   

    以前刚学io的时候写的玩的,要测试的话换个目录吧...写完整个C盘的文件数估计得要N久的。import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintWriter;public class IOTest {
    public static void main(String[] args) {
    File f = new File("C:");
    PrintWriter pw = null;
    try {
    pw = new PrintWriter(new BufferedOutputStream(new FileOutputStream(
    "D:\\1.txt"), 1000));
    printFile(f, 0, pw);
    pw.flush();
    pw.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } } private static void printFile(File f, int num, PrintWriter pw) {
    if (!f.isDirectory()) {
    for (int i = 0; i < num; i++) {
    pw.print("\t");
    }
    pw.println("---文件:" + f.getName());
    } else {
    for (int i = 0; i < num; i++) {
    pw.print("\t");
    }
    pw.println("---文件夹:" + f.getName());
    File[] fs = f.listFiles();
    if (fs == null) {
    return;
    }
    for (int i = 0; i < fs.length; i++) {
    for (int j = i + 1; j < fs.length; j++) {
    if (fs[j].isFile()) {
    File ff = fs[i];
    fs[i] = fs[j];
    fs[j] = ff;
    }
    }
    }
    for (int i = 0; i < fs.length; i++) {
    printFile(fs[i], num + 1, pw);
    }
    }
    }
    }
      

  5.   

     
    package com.hoo.utils;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;public class OperateFileUtils { /***************************************************************************
     * <b>function:</b> 在java中 路径/需要替换成\\
     * @createDate 2010-6-4 上午11:18:45
     * @param file 替换的文件
     * @return 替换后的路径
     */
    private static String getAvailablePath(File file) {
    return file.getPath().replace('\\', '/');
    } /***************************************************************************
     * <b>function:</b> 返回某个文件夹下所有的文件
     * @createDate 2010-6-4 上午11:21:07
     * @param fileList 找到的文件集合
     * @param path 路径
     * @param fileSuffix 要找的文件后缀
     */
    public static void getFiles(List<File> fileList, String path, String fileSuffix) {
    File file = new File(path);
    File[] files = file.listFiles();
    if (files == null) {
    return;
    } else {
    for (int i = 0; i < files.length; i++) {
    // 判断是否是文件夹
    if (files[i].isDirectory()) {
    // 递归调用getFiles方法,得到所有的文件
    getFiles(fileList, getAvailablePath(files[i]), fileSuffix);
    } else if (files[i].getName().lastIndexOf(fileSuffix) != -1) {// 只处理fileSuffix后缀的文档
    // copyFileAndAddPackageName(files[i]);
    fileList.add(files[i]);// 添加到文件集合中
    }
    // System.out.println(files[i].getAbsolutePath().replace('\\',
    // '/'));
    }
    }
    } /***************************************************************************
     * <b>function:</b> 把文件内容复制到指定文件中
     * @createDate 2010-6-4 下午12:09:42
     * @author 3hhuj 胡佳
     * @param file 要操作的文件
     * @param toFile 保存的文件
     */
    public static void copyFile2TempFile(List<File> fileList, File toFile) {
    BufferedWriter bw = null;
    BufferedReader br = null;
    FileWriter fileWriter = null;
    FileReader fileReader = null;
    try {
    StringBuilder sb = new StringBuilder();
    String content = "";
    for (File textFile : fileList) {
    System.out.println(textFile.getName());
    fileReader = new FileReader(textFile);// 读取文件的内容
    br = new BufferedReader(fileReader);
    while ((content = br.readLine()) != null) {
    System.out.println(content);
    if (!content.trim().equals("")) {
    sb.append(content);// .append("\r");
    }
    }
    }
    fileWriter = new FileWriter(toFile);// 向文件中写入刚才读取文件中的内容
    bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    bw.close();
    br.close();
    fileWriter.close();
    fileReader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    } /***************************************************************************
     *  <b>function:</b> 读取单个文件
     * @createDate 2010-6-4 下午01:42:33
     * @param file 读取内容的文件
     * @param toFile 保存后的文件
     */
    public static void copyFile2TempFile(File file, File toFile) {
    BufferedWriter bw = null;
    BufferedReader br = null;
    FileWriter fileWriter = null;
    FileReader fileReader = null;
    try {
    StringBuilder sb = new StringBuilder();
    String content = "";
    fileReader = new FileReader(file);// 读取文件的内容
    br = new BufferedReader(fileReader);
    while ((content = br.readLine()) != null) {
    System.out.println(content);
    if (!content.trim().equals("")) {
    sb.append(content);// .append("\r");
    }
    }
    fileWriter = new FileWriter(toFile);// 向文件中写入刚才读取文件中的内容
    bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    bw.close();
    br.close();
    fileWriter.close();
    fileReader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    } public static void main(String[] args) {
    List<File> fileList = new ArrayList<File>();
    getFiles(fileList, "c:/txt_test", ".txt");
    getFiles(fileList, "c:/txt", ".txt");
    // 将读取的内容放入tempFile中
    File tempFile = new File("c:\\temp.txt");
    if (!tempFile.exists()) {
    try {
    //不存在就创建一个
    tempFile = File.createTempFile("temp", ".txt", new File("c:\\"));
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    //copyFile2TempFile(fileList, tempFile);
    copyFile2TempFile(new File("c:\\a.txt"), tempFile);
    }
    }
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/IBM_hoojo/archive/2010/06/04/5647373.aspx