java 文件遍历

/**
 * 功能:
 *    1.获取D盘下2级范围所有的文件夹和文件名,如果文件夹中有文件或者文件夹也需要获取名字。
 *    2.每一个级目录先文件夹名按照字母顺序从小到大排序,后文件名按照字母顺序从小到大排序,
 *    并且每一个文件夹名或者文件名是一行,如果是子级文件夹或者文件名前面要有4个空格。
 *
 */
public class Test1 {

 /**
  * 主方法
  */
 public static void main(String[] args) {
  File file = new File("f:\\");
  System.out.println("f:\\");
  if (file != null && file.isDirectory()) {
   File[] files1 = file.listFiles();
   if(files1 != null && files1.length > 0) {
    for(File ff : sortFile(files1)){
     System.out.println("    " + ff.getName());
     if (ff != null && ff.isDirectory()) {
      File[] files2 = ff.listFiles();
      if(files2 != null && files2.length > 0) {
       for (File file2 : sortFile(files2)) {
        System.out.println("        " + file2.getName());
       }
      }
     }
    }
   }
  }
 }
 
 /**
  * 排序方法:每一个级目录先文件夹名按照字母顺序从小到大排序,后文件名按照字母顺序从小到大排序
  * @param files
  * @return
  */
 private static List<File> sortFile(File[] files){
  List<File> list1 = new ArrayList<File>();
  List<File> list2 = new ArrayList<File>();
  for(File file : files){
   if(file.isDirectory()){
    list1.add(file);
   }else if(file.isFile()){
    list2.add(file);
   }
  }
  Arrays.sort(list1.toArray());
  Arrays.sort(list2.toArray());
  list1.addAll(list2);
  return list1;
 }
}

你可能感兴趣的:(java)