/**
* 功能:
* 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;
}
}