Я пытаюсь получить список всех файлов в каталоге (и файлы в подкаталоги) со следующим кодом:NodeJS рекурсивно список файлов в каталоге
var fs = require('fs')
var walk = function(directoryName) {
fs.readdir(directoryName, function(e, files) {
files.forEach(function(file) {
fs.stat(file, function(e, f) {
if (f.isDirectory()) {
walk(file)
} else {
console.log('- ' + file)
}
})
})
})
}
walk(__dirname)
Однако при попытке мой код для вызова walk(file)
в строке 8 Я получаю следующую ошибку:
TypeError: Cannot call method 'isDirectory' of undefined
at program.js:7:15
at Object.oncomplete (fs.js:107:15)
Почему не определено? Если у меня есть структура каталогов ниже, не должен ли код идентифицировать aaa.txt
и bbb.txt
как файлы, my_dir
в качестве каталога, в котором он рекурсивно вызывает walk
и снова начинает процесс (с zzz.txt
, являющимся значением f)?
- aaa.txt
- bbb.txt
+ my_dir
- zzz.txt
Попробуйте выполнить тестирование на 'e', возможно, произошла ошибка. –
вам также нужно добавить имя_каталог в рекурсивную прогулку. – wayne