解决方案 »

  1.   

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Scanner;public class ListFiles { public static void main(String[] args) { System.out.print("请输入目录:");
    Scanner sc = new Scanner(System.in);
    String dirStr = sc.next();
    System.out.print("请输入文件格式(比如JPG、txt、xls、docx……):");
    String hzName = sc.next();
    System.out.println("要查找的目录为=" + dirStr + ",要查找的文件格式=" + hzName);
    List<String> list = new ArrayList<String>();
    list = listFilesByDirPath(list, dirStr, hzName);
    System.out.println(Arrays.toString(list.toArray()));
    writeToFile(list,"D:\\result.txt");
    sc.close();

    } /**
     * 列出目录
     * @param list
     * @param path
     * @param hzm
     * @return
     */
    public static List<String> listFilesByDirPath(List<String> list,
    String path, String hzm) { File file = new File(path);
    String[] files = file.list();
    if (null != files) {
    for (String strName : files) {
    String newPath = path + File.separator + strName;
    File fileChild = new File(path + File.separator + strName);
    if (fileChild.isFile()) {
    String fileName = fileChild.getName();
    int index = fileName.lastIndexOf(".");
    String hzm_file = fileName.substring(index + 1);
    if (hzm_file.toLowerCase().equals(hzm.toLowerCase())) {
    list.add(newPath);
    }
    } else {
    listFilesByDirPath(list, newPath, hzm);
    }
    }
    }
    else{
    System.out.println("不存在该目录");
    }

    return list; }

    /**
     * 把结果写入文件
     * @param list
     * @param path
     */
    public static void writeToFile(List<String> list,String path){
    try {
    BufferedWriter bw = new BufferedWriter(new FileWriter(path));
    for(int i=0;i<list.size();i++){
    String filename = list.get(i);
    bw.write(filename+"\n");
    }
    bw.flush();
    bw.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    }}参考下,如果是作业题,希望楼主下次不要这样发帖了,按1楼兄弟那样说的,你自己先写,看哪边不会,然后把代码贴出来,再问大家