NodeJs 生成本地文件树
# NodeJs 生成本地文件树
# 内容
// dirTree.js
//遍历文件夹,获取所有文件夹里面的文件信息
var fs = require('fs')
// 忽略文件夹
let ignoreList = ['node_modules', 'dist', '.git', '.vscode']
/* * path 文件夹路径 * */
function geFileList(path) {
var filesList = []
var targetObj = {
name: 'root',
children: []
}
readFile(path, targetObj, filesList)
return { targetObj, filesList }
}
//遍历读取文件
function readFile(path, targetObj, filesList) {
files = fs.readdirSync(path)
//需要用到同步读取
files.forEach(walk)
function walk(file) {
states = fs.statSync(path + '/' + file)
if (states.isDirectory()) {
// 文件夹
let item = { name: file, children: [] }
targetObj.children.push(item)
if (!ignoreList.includes(file)) {
readFile(path + '/' + file, item, filesList)
}
} else {
// 文件
targetObj.children.push(file)
filesList.push(file)
}
}
}
//写入文件 utf-8 格式
function writeFile(fileName, data) {
fs.writeFile(fileName, data, 'utf-8', complete)
function complete() {
console.log(fileName + '文件生成成功')
}
}
// 获取文件信息
var dataObj = geFileList('G:\\xiaoc1103\\code\\gitlab\\lz-ds\\trading-user-subaccount')
// 生成文件树
var tree = JSON.stringify(dataObj.targetObj)
dirTree = 'var dirTree = #1'.replace('#1', tree)
writeFile('dirTree.js', dirTree)
// 生成所有文件列表
// var file = JSON.stringify(dataObj.filesList)
// fileList = 'var fileList = #1'.replace('#1', file)
// writeFile('fileList.js', fileList)
在安装 nodeJs 后,打开命令行,进入文件对应位置,执行
node dirTree.js
即可