[javaSE] java获取文件列表详解编程语言

递归测试

import java.io.File; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
public class FilesDemo { 
    private static final String FILE_PATH = "./"; 
    private static List<Map<String, String>> FileList; 
 
    public static void main(String[] args) { 
        listFiles(new File(FILE_PATH), 1); 
        // for(Map<String,String> item:FileList){ 
        // System.out.println("{name:"+item.get("name")+",level:"+item.get("level")+"}"); 
        // } 
    } 
 
    public static void listFiles(File file, int level) { 
        FileList = new ArrayList<>(); 
        Map<String, String> item; 
        File[] files = file.listFiles(); 
        if (file.list().length != 0) { 
            for (File fileTemp : files) { 
                String fileName = fileTemp.getName(); 
                System.out.println(getLevelPrefix(level) + fileName); 
 
                if (fileTemp.isDirectory() && fileTemp.list().length > 0) { 
                    listFiles(fileTemp, level + 1); 
                } else { 
                    item = new HashMap<String, String>(); 
                    item.put("name", fileTemp.getName()); 
                    item.put("level", String.valueOf(level)); 
 
                    FileList.add(item); 
                } 
            } 
        } else { 
            System.out.println(getLevelPrefix(level) + file.getName()); 
        } 
 
    } 
 
    public static String getLevelPrefix(int level) { 
        StringBuilder sb = new StringBuilder(); 
        for (int i = 1; i < level; i++) { 
            sb.append("    "); 
        } 
        sb.append("|--"); 
        return sb.toString(); 
    } 
}

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12627.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论