Javascript 将文件夹结构转换为json

Javascript 将文件夹结构转换为json,javascript,node.js,json,Javascript,Node.js,Json,我尝试采用文件夹结构,并将其转换为JSON格式: . ├── Folder │   ├── Image.png │   └── Image_1.png └── Folder2 ├── Image.png └── Image_1.png 结构如下: { "Folder": ["Image.png", "Image_1.png"], "Folder2": ["Image.png", "Image_1.png"] } 谢谢。这样的事情可能吗 编辑:这是我开始使用的,但是当试

我尝试采用文件夹结构,并将其转换为JSON格式:

.
├── Folder
│   ├── Image.png
│   └── Image_1.png
└── Folder2
    ├── Image.png
    └── Image_1.png
结构如下:

{
  "Folder": ["Image.png", "Image_1.png"],
  "Folder2": ["Image.png", "Image_1.png"]
}
谢谢。这样的事情可能吗

编辑:这是我开始使用的,但是当试图深入到文件夹中的文件夹时,递归正在中断

const fs = require('fs');
const path = require('path');

var structure = {};

function findFiles(folder) {
    fs.readdir(folder, (err, files) => {
        files.forEach(file => {
            console.log(file);
            if(fs.lstatSync(__dirname + "/" + file).isDirectory()){
                console.log(folder)
                findFiles(folder + "/" + file);
            }
        });
    })
}

findFiles(__dirname)

有趣的问题。这是我的解决方案,使用同步功能。输出JSON将包含一个对象数组,可以是字符串(用于文件名)或对象(用于目录)

代码():

输出:

[ { node: [ '.bash_logout', '.bashrc', '.profile' ] },
  { runner: 
     [ '.bash_logout',
       '.bashrc',
       '.profile',
       'config.json',
       'index.js',
       { node_modules: [] },
       'test.js' ] } ]

请注意,我正在使用
util.inspect
打印结果,以允许对象具有无限深度,但您也可以执行
JSON.stringify(results)

这是可能的。也许先试试看?从“fs”库开始。很好的机会使用你的递归技巧。我有点困惑。我尝试使用fs.readdir,但不确定如何判断它是文件还是文件夹,以及如何知道何时停止深入某个路径。@Jeff仔细阅读,并尝试一下。然后发布你的尝试,具体来说,什么是不起作用的。我一直在经历这一过程,在文件夹中查找文件夹时遇到了困难。我添加了一些代码来说明我现在的处境。请看我最近对一个类似问题的回答:这真的很有趣。节点模块是否为空,因为其中没有任何内容?@Jeff是的,空文件夹对应于空数组
[ { node: [ '.bash_logout', '.bashrc', '.profile' ] },
  { runner: 
     [ '.bash_logout',
       '.bashrc',
       '.profile',
       'config.json',
       'index.js',
       { node_modules: [] },
       'test.js' ] } ]