使用Java,遍历某磁盘,获得所有文件夹及子文件夹河文件,然后将他以树形图展示
返回一个集合,map或者list都可以
/**
* 输出给定目录下的文件,包括子目录中的文件
*
* @param dirPath 给定的目录
*/
public Map<String, List<String>> readFiles(String dirPath, Map<String, Map> fileAndDirMap) {
// 建立当前目录中文件的File对象
File file = new File(dirPath);
// 取得代表目录中所有文件的File对象数组
File[] list = file.listFiles();
List<String> fileNameList = new ArrayList<>();
Map<String, List<String>> fileMap = new LinkedHashMap<>();
fileMap.put(dirPath, fileNameList);
for (File file1 : list) {
if (file1.isDirectory()) {
fileAndDirMap.put(dirPath, fileMap);
readFiles(file1.getPath(), fileAndDirMap);
} else {
fileNameList.add(file1.getName());
}
}
fileAndDirMap.put(dirPath, fileMap);
// 遍历file数组
return fileMap;
}
这是我写的方法,但是返回的子目录与主目录平级
你的思路有问题,你的返回值格式只是Map<String,List<String>>,不满足你想要的分层格式,要换成Map存储子目录才可以