Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
系统目录到java列表_Java_Json_Angular - Fatal编程技术网

系统目录到java列表

系统目录到java列表,java,json,angular,Java,Json,Angular,我对json不太熟悉,我正试图将一个计算机目录传递给json,以便在web上使用Priming Angular绘制它。我正试图生成一个类似这样的结构,但我没有任何想法?多谢各位 我只需要帮助就可以在对象/列表中保存完整的文件夹/文件结构 致意 *类有一个Stringname和两个列表,一个用于文件夹,另一个用于文件 这是我的实际代码: static carpeta raiz = new carpeta(new File(ruta).getName()); public static void

我对json不太熟悉,我正试图将一个计算机目录传递给json,以便在web上使用Priming Angular绘制它。我正试图生成一个类似这样的结构,但我没有任何想法?多谢各位

我只需要帮助就可以在对象/列表中保存完整的文件夹/文件结构 致意

*类有一个Stringname和两个列表,一个用于文件夹,另一个用于文件

这是我的实际代码:

 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);
}
和MyFolderDetails:

当然,您可以在details对象中添加更多字段,例如文件大小或文件夹的明确标记,以获得显示的输出

public class MyFileDetails {
    private String name;

    public MyFileDetails(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
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/"));