我有一个像这样的文件结构:
root |_ fruits |___ apple |______images |________ apple001.jpg |________ apple002.jpg |_ animals |___ cat |______images |________ cat001.jpg |________ cat002.jpg
我想使用Javascript和Node.js侦听此根目录和所有子目录,并创建一个反映此目录结构的JSON,每个节点均包含类型,名称,路径和子级:
data = [ { type: "folder", name: "animals", path: "/animals", children: [ { type: "folder", name: "cat", path: "/animals/cat", children: [ { type: "folder", name: "images", path: "/animals/cat/images", children: [ { type: "file", name: "cat001.jpg", path: "/animals/cat/images/cat001.jpg" }, { type: "file", name: "cat001.jpg", path: "/animals/cat/images/cat002.jpg" } ] } ] } ] } ];
这是一个coffeescript JSON:
data = [ type: "folder" name: "animals" path: "/animals" children : [ type: "folder" name: "cat" path: "/animals/cat" children: [ type: "folder" name: "images" path: "/animals/cat/images" children: [ type: "file" name: "cat001.jpg" path: "/animals/cat/images/cat001.jpg" , type: "file" name: "cat001.jpg" path: "/animals/cat/images/cat002.jpg" ] ] ] ]
如何在Django视图中获取此JSON数据格式?(python)
这是草图。错误处理留给读者练习。
var fs = require('fs'), path = require('path') function dirTree(filename) { var stats = fs.lstatSync(filename), info = { path: filename, name: path.basename(filename) }; if (stats.isDirectory()) { info.type = "folder"; info.children = fs.readdirSync(filename).map(function(child) { return dirTree(filename + '/' + child); }); } else { // Assuming it's a file. In real life it could be a symlink or // something else! info.type = "file"; } return info; } if (module.parent == undefined) { // node dirTree.js ~/foo/bar var util = require('util'); console.log(util.inspect(dirTree(process.argv[2]), false, null)); }