Tengo una función que me da todos los archivos en la carpeta de forma recursiva, pero quiero ordenarlos solo por unas pocas extensiones específicas, sé que puedo usar glob, pero ¿cómo hago eso usando fs en el nodo?
const fs = require('fs'); function getFiles (dir, files_){ files_ = files_ || []; var files = fs.readdirSync(dir); for (var i in files){ var name = dir + '/' + files[i]; if (fs.statSync(name).isDirectory()){ getFiles(name, files_); } else { files_.push(name); } } return files_; } console.log(getFiles('D:/sample'))Puede agregar lógica condicional antes de insertar los archivos en la matriz de archivos_ y luego usar métodos de cadena para verificar los últimos 4 elementos de los archivos [i] si coinciden con una cierta extensión, y si es así, proceda a insertar ese archivo en archivos_.
const fs = require('fs'); function getFiles (dir, files_) { files_ = files_ || []; var files = fs.readdirSync(dir); var parseThese = [".txt", ".pdf", ".csv"]; for (var i in files) { var name = dir + '/' + files[i]; var extension = ""; if (fs.statSync(name).isDirectory()) { return getFiles(name, files_); } extension = files[i].slice(-4); if (parseThese.includes(extension)) { return files_.push(name); } } return files_; } console.log(getFiles('D:/sample'))No está usando el módulo FS, pero tal vez esto podría funcionar.