Javascript nodejs中递归的自创问题

Javascript nodejs中递归的自创问题,javascript,node.js,recursion,filesystems,Javascript,Node.js,Recursion,Filesystems,我正在尝试编写一个递归文件列表函数。它可以工作,除了递归部分;每当它读取文件夹中的数据时,它就会永远卡在一个循环中。例如: 文件夹C:/Server包含多个文本文件和一个文件夹。程序将记录文件,但当它看到文件夹时,它将始终交替输出: C:/Server/Dir 及 代码如下: var fs = require('fs'); var paths = {}; function findPaths(dir) { var thisdir = fs.readdirSync(dir); for

我正在尝试编写一个递归文件列表函数。它可以工作,除了递归部分;每当它读取文件夹中的数据时,它就会永远卡在一个循环中。例如:

文件夹C:/Server包含多个文本文件和一个文件夹。程序将记录文件,但当它看到文件夹时,它将始终交替输出:

C:/Server/Dir

代码如下:

var fs = require('fs');

var paths = {};

function findPaths(dir)
{
  var thisdir = fs.readdirSync(dir);
  for(Index = 0; Index < thisdir.length; Index++)
    {
      console.log(dir+"/"+thisdir[Index]);
      if(fs.statSync(dir+"/"+thisdir[Index]).isDirectory())
        {
            paths[dir+"/"+thisdir[Index]] = "directory";
            findPaths(dir+"/"+thisdir[Index])
        }
      else
        {
            paths[dir+"/"+thisdir[Index]] = "file";
        }
    }
}

findPaths("C:/Server");

console.log("FINISHED!");
var fs=require('fs');
var路径={};
函数findpath(dir)
{
var thisdir=fs.readdirSync(dir);
对于(索引=0;索引

请不要在您的回复中链接到库;我不想让臃肿的软件掩盖我的无知。

你的
索引是一个全局变量-这不适合递归。将其更改为本地:

for(var Index = 0; Index < thisdir.length; Index++)
  {
     // ...
  }
for(var Index=0;Index
谢谢!你给我省了很多麻烦D
for(var Index = 0; Index < thisdir.length; Index++)
  {
     // ...
  }