我正在我的ReactApp中制作一个代表文件夹结构的菜单。文件夹是通过内部文档的类别来命名的,其中一些文件夹包含带有文件的子文件夹。
我正在寻找的基本输出是这样的:
[
{
"Payroll Forms": {
files: ["form1.pdf", "form2.pdf"],
"Payroll How To's": {
files: ["file1.pdf", "file2.doc"]
},
"Payroll Adjustments": {
files: ["file1.doc", "file2.pdf"],
"Payroll Subdirectory": {
files: ["file1.xsl", "file2.pdf"]
}
}
},
{
"LOA": {
files: []
......(you get the idea)
]
现在这是一个完整目录,因此每个顶级目录都会有一个对象,该对象中将包含文件和子目录。
通过硬编码一切工作原理,我能够使用有限数量的子目录来完成这项工作。我不想在允许他们做的事情上限制他们,或者如果需要的话,必须回去为另一级目录添加更多代码。
[我花了整整两天的时间在如何动态地实现这一目标上动了脑筋,而且还没有走得更近,这就是为什么我没有起始代码可以使用的原因。
有没有人可以伸出援手,我在工作上没有问题,只需要一些指导。
谢谢!
嘿,尝试了一些希望对您有所帮助的事情:
const fs = require('fs');
//const folderObject = {files:[]}; //if the parent folder has files
const folderObject = {};
function parseFolder(obj, folderPath){
const files = fs.readdirSync(folderPath);
for(file of files){
const filePath = `${folderPath}/${file}`;
if(fs.lstatSync(filePath).isDirectory()){
obj[file] = {files:[]};
parseFolder(obj[file],filePath);
} else {
obj.files.push(file);
}
}
}
parseFolder(folderObject,'./node_modules');
将'./node_modules'更改为您需要解析的文件夹路径