array.length es cero, pero el array tiene elementos [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Es floja la consola JavaScript de Chrome para evaluar matrices? 6 respuestas

Actualmente estoy en el proceso practicando el uso de electrones, pero soy bastante nuevo con JavaScript y me he encontrado con un problema que me tiene completamente desconcertado. Tengo el siguiente código

    function getPaths() {
      var dirPath = document.getElementById("mdir").innerHTML;
      var filePaths = [];
      fs.readdir(dirPath, function(err, dir) {
        for(var i = 0, l = dir.length; i < l; i++) {
          var filePath = dir[i];
          filePaths.push(dirPath + "/" + filePath);
        }
      });
      console.log(filePaths);
      console.log(filePaths.length);
    }

Qué se supone que debe buscar en un directorio definido pordirPath, luego recorre y obtiene la ruta completa de todos los archivos en ese directorio. Los agrega a una matriz y luego, en la parte inferior, registra la matriz en la consola, seguida de la longitud de la matriz. Lo que me desconcierta es que dado ese código, la matriz se registra en la consola como se esperaba, pero luego la consola registra cero como la longitud. Mi opinión actual es que tiene algo que ver con el alcance, pero eso no tiene sentido porque estoy declarando la matriz,filePaths en la función arriba de la que se está ejecutando. A menos que me haya perdido algo. ¿Alguien podría señalar lo que estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta