Ваша цель могла быть достигнута с этим модулем:
Это позволяет, Вы, чтобы иметь json возражаете или строка, представляющая дерево данного пути. Это имеет также обратный вызов, когда файлы найдены и несколько фильтров и опций.
Это - код:
const dree = require('dree');
const files = [];
const fileCb = function(file) {
files.push(file.name);
}
dree.scan('path', { extensions: ['txt', 'html'] }, fileCb);
console.log(files); //Print all txt and html files found
Не может добавить комментарий из-за репутации, но заметить следующее:
Используя fs.readdir или шарик узла для нахождения подстановочного набора файлов в папке 500 000 файлов взял ~2s. Используя должностное лицо с DIR взял ~0.05s (не рекурсивный) или (рекурсивный) ~0.45s. (Я искал ~14 файлов, соответствующих моему шаблону в единственном каталоге).
До сих пор, мне не удалось найти любую nodejs реализацию, которая использует низкий уровень подстановочный знак ОС, ищущий эффективность. Но вышеупомянутое DIR/ls базирующийся код работает замечательно в окнах с точки зрения эффективности. Linux находит, однако, , вероятно, будет очень медленный для больших каталогов.
Старое сообщение, но ES6 теперь обрабатывает это из поля с includes
метод.
let files = ['file.json', 'other.js'];
let jsonFiles = files.filter(file => file.includes('.json'));
console.log("Files: ", jsonFiles) ==> //file.json