글쎄요, 적어도 결과는 예상치 않았습니다. 디렉토리를 검색하고 모든 파일과 하위 폴더를 가져 오려고하지만 서브 디렉토리의 하위 디렉토리로 작업 할 때 문제가 있습니다. 함수 자체는 주어진 폴더 내의 모든 폴더와 모든 파일의 모든 내용을 찾고 폴더 안의 것들 중 하나가 폴더 일 때 스스로를 호출하도록 설계되었습니다.예기치 않은 결과를주는 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