那么结果至少对我来说是出乎意料的。我正在尝试搜索目录并获取所有文件和子文件夹,但是在处理子目录的子目录时遇到了一些问题。该函数本身旨在查找所有文件夹的所有内容以及给定文件夹中的所有文件,并在文件夹中的其中一个事物是文件夹时调用自身。
但是,它永远不会完成,它一直将同一个文件夹输入到自身中,并且从不对其进行任何操作,最终只是崩溃了。
var fs = require('fs');
var array = fs.readdirSync(__dirname);
function getAllSub(array){
for (i = 0; i < array.length; i++){
if (array[i].indexOf(".") == (-1))
{
array = array.concat(array[i] + "/" + fs.readdirSync(__dirname + "/" + array[i]));
}
if (array[i].indexOf("/") != (-1)){
var foldcon = array[i].substr(array[i].indexOf("/") + 1);
var folder = array[i].substr(0, array[i].indexOf("/"));
foldcon = foldcon.split(",");
for (n = 0; n < foldcon.length; n++){
foldcon[n] = folder + "/" + foldcon[n]
if (foldcon[n].indexOf(".") == (-1)){
console.log([foldcon[n]]);
foldcon[n] = getAllSub([foldcon[n]]);
}
}
array.splice(i, 1, foldcon);
}
}
return array;
}
array = getAllSub(array);
console.log(array);