node.js->;readdir递归
我正在尝试获取一个嵌套对象,其中包含给定路径的所有文件/文件夹/子文件夹 我正在使用node walk,它提供了我想要的一切。我正在努力将结果快速转换为嵌套对象 基本上,我很容易得到一系列文件:node.js->;readdir递归,node.js,object,node-walk,Node.js,Object,Node Walk,我正在尝试获取一个嵌套对象,其中包含给定路径的所有文件/文件夹/子文件夹 我正在使用node walk,它提供了我想要的一切。我正在努力将结果快速转换为嵌套对象 基本上,我很容易得到一系列文件: ['path/file1.txt', 'path/subfolder1/file2.txt', 'path/subfolder1.file3.txt', 'path/subfolder2/file4.txt'] (注意:很容易在路径和文件名之间分割) 我想将其转换为嵌套对象,如下所示: [ { id
['path/file1.txt', 'path/subfolder1/file2.txt',
'path/subfolder1.file3.txt', 'path/subfolder2/file4.txt']
(注意:很容易在路径和文件名之间分割)
我想将其转换为嵌套对象,如下所示:
[
{ id: 'file1.txt', type:'file' } ,
{ id: 'subfolder1', type: 'folder',
children:[ {id:'file2.txt', type:'file'}, {id:'file3.txt', type:'file'} ] },
{ id: 'subfolder2', type: 'folder',
children: [ {id:'file4.txt', type:'file'}] }
]
最后,我希望有更多关于文件的信息(比如大小、创建日期),但如果有更多的属性,也会有同样的想法
有人能帮我创建这个嵌套对象吗?
非常感谢我不会为您编写全部内容,但是
path.sep
()会有所帮助。下面是一些伪代码:
function transformArray(fileArray) {
var tree={};
for (file in fileArray) {
addToTree(tree,path.sep(file));
}
function addToTree(subTree,file) {
if(file.length==1) {
subTree.children.push({make your file object})
} else {
subTree.children.push({make your folder object});
addToTree((select your new folder).children,file.shift());
}
}
return tree;
}
你试过什么?所以,当你陷入困境时,它可以帮助你,但如果你甚至没有尝试过,那么这不是一个适合你提问的论坛。