java - 系统目录到java列表
问题描述
我对 json 不是很熟悉,我正在尝试将计算机目录传递给 json 以使用 PrimeNG(Angular)在网络上绘制它我正在尝试生成这样的结构https://www.primefaces.org /primeng/assets/showcase/data/filesystem.json但我不明白有什么想法吗?谢谢
我只需要帮助来保存对象/列表中的完整文件夹/文件结构最好的问候
*“地毯”类有一个字符串(名称)和两个列表,一个用于文件夹,另一个用于文件
这是我的实际代码:
static carpeta raiz = new carpeta(new File(ruta).getName());
public static void recursiveSearch(File file ) {
File[] filesList = file.listFiles();
for (File f : filesList) {
if (f.isDirectory()) {
// raiz.addCarpetas(Carpeta);
carpeta actual = new carpeta(f.getName());
raiz.addCarpetas(actual);
System.out.println("Directoy name is -------------->" + f.getName());
System.out.println("BuscaDentro");
recursiveSearch(f);
}
if( f.isFile() ){
System.out.println("File name is -------------->" + f.getName());
}
System.out.println("Siguiente");
}
解决方案
您可以使用以下递归方法:
public MyFileDetails recursiveSearch(File file) {
if (file.isFile()) {
return new MyFileDetails(file.getName());
}
List<MyFileDetails> children = new ArrayList<>();
File[] filesList = file.listFiles();
for (File f : filesList) {
children.add(recursiveSearch(f));
}
return new MyFolderDetails(file.getName(), children);
}
与MyFileDetails
:
public class MyFileDetails {
private String name;
public MyFileDetails(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
并且MyFolderDetails
:
public class MyFolderDetails extends MyFileDetails {
private List<MyFileDetails> children;
public MyFolderDetails(String name, List<MyFileDetails> children) {
super(name);
this.children = children;
}
public List<MyFileDetails> getChildren() {
return children;
}
}
如果您传递一个文件夹,它将返回一个包含所有子对象的对象。
MyFileDetails details = recursiveSearch(new File("/path/to/my-test-folder/"));
当然,您可以向详细信息对象添加更多字段(例如文件大小或文件夹的显式标记),以获得您显示的输出。
推荐阅读
- ssl - Rundeck gmail smtp设置
- javascript - React js: ./src/App.js Line 22: 'lastWinner' is not defined no-undef 搜索关键字以了解有关每个错误的更多信息
- javascript - 在 Firebase 中写入数据后读取数据
- c# - Dns.GetHostEntry 在 Xamarin 窗体中不起作用
- reactjs - 无法对未安装的组件执行 React 状态更新?
- python - 如何绕过 Keras pad_sequences() 将浮点值舍入为零?
- java - 高 I/O Java 进程在 Docker 容器中运行时始终在 JavaThread 中获得信号 11 SIGSEGV
- javascript - 使用 p5 像素填充的 Percularities
- amcharts - 如何从 amCharts v4 中的 XYChartScrollbar 中删除系列?
- python - 如何在虚拟环境中添加到 pythonpath