我创建了一个递归函数,它将遍历文件目录。我的问题是:
function _chekcfile
.....
console.info(aTempFiles);
.....
文件结构
|-:目录
>-:文件
|-- C:
|-- Test
|-- template
|-- blank
|-- config.json
|-- webapp
>-- manifest.json
>-- index.html
>-- Component.js
|-- controller
>-- Home.controller.js
|-- css
>-- style.css
|-- i18n
>-- i18n.properties
|-- model
>-- models.js
|-- util
>-- BaseController.js
|-- view
>-- App.view.xml
>-- Home.view.xml
节点JS文件
const fs = require('fs');
const chalk = require('chalk');
const path = require('path');
// Initial
var staticPath = "C:/Test/template/blank";
// Call checkfile
_checkFile(staticPath);
console.info('--------------------------------------------------');
function _checkFile (staticPath, dirHist ="") {
console.info(staticPath);
var aFiles = _readPath(staticPath);
try {
aFiles.forEach((sFileOrDir, iIdx) => {
if (fs.statSync(path.join(staticPath, sFileOrDir)).isDirectory()) {
_checkFile(path.join(staticPath, sFileOrDir), dirHist ? `${dirHist}\\${sFileOrDir}` : sFileOrDir);
} else {
// File
aTempFiles.push(path.join(dirHist, sFileOrDir));
}
});
} catch(e) {
console.info(chalk.red(e));
}
console.info(aTempFiles);
}
function _readPath (staticPath) {
return fs.readdirSync(staticPath);
}
预期的控制台输出:
C:\Test\template\blank
C:\Test\template\blank\webapp
C:\Test\template\blank\webapp\controller
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js' ]
C:\Test\template\blank\webapp\css
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css' ]
C:\Test\template\blank\webapp\i18n
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties' ]
C:\Test\template\blank\webapp\model
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties',
'webapp\\index.html',
'webapp\\manifest.json',
'webapp\\model\\models.js' ]
C:\Test\template\blank\webapp\util
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties',
'webapp\\index.html',
'webapp\\manifest.json',
'webapp\\model\\models.js',
'webapp\\util\\BaseController.js' ]
C:\Test\template\blank\webapp\view
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties',
'webapp\\index.html',
'webapp\\manifest.json',
'webapp\\model\\models.js',
'webapp\\util\\BaseController.js',
'webapp\\view\\App.view.xml',
'webapp\\view\\Home.view.xml' ]
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties',
'webapp\\index.html',
'webapp\\manifest.json',
'webapp\\model\\models.js',
'webapp\\util\\BaseController.js',
'webapp\\view\\App.view.xml',
'webapp\\view\\Home.view.xml' ]
[ 'config.json',
'webapp\\Component.js',
'webapp\\controller\\Home.controller.js',
'webapp\\css\\style.css',
'webapp\\i18n\\i18n.properties',
'webapp\\index.html',
'webapp\\manifest.json',
'webapp\\model\\models.js',
'webapp\\util\\BaseController.js',
'webapp\\view\\App.view.xml',
'webapp\\view\\Home.view.xml' ]
--------------------------------------------------