25 lines
530 B
JavaScript
25 lines
530 B
JavaScript
const fs = require('fs')
|
|
|
|
function directoryFilesRecursive (directory, filesList = []) {
|
|
let files;
|
|
try {
|
|
files = fs.readdirSync(directory)
|
|
} catch(err) {
|
|
if(err.code !== 'ENOTDIR')
|
|
throw err
|
|
else
|
|
return [directory] // if file, return file
|
|
}
|
|
for (const file of files) {
|
|
const filePath = `${directory}/${file}`
|
|
if (fs.statSync(filePath).isDirectory()) {
|
|
directoryFilesRecursive(filePath, filesList)
|
|
} else {
|
|
filesList.push(filePath)
|
|
}
|
|
}
|
|
return filesList
|
|
}
|
|
|
|
module.exports = directoryFilesRecursive
|