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;
?}
}