0
那麼結果對我而言至少是意外的。我試圖通過目錄搜索並獲取所有文件和子文件夾,但是我在處理子目錄的子目錄時遇到了一些問題。該功能本身旨在查找給定文件夾內所有文件夾和所有文件的所有內容,並在文件夾內的其中一個文件夾是文件夾時調用它自己。node.js中的遞歸函數給出了意想不到的結果
但是,它永遠不會完成,它始終將相同的文件夾放入自己的文件夾中,從不做任何事情,最終只會崩潰。
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);
啊感謝,再次我不知道所有的功能。我使用同步版本的readdir的唯一原因是因爲我打算在服務器啓動之前啓動該功能,然後爲其提供所有文件和文件夾的數組。 – Hallucigenia95 2012-04-29 11:42:01