Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

136
Visualizações
output list of files in a directory by array of extensions

I'm trying to get only image filenames to output into console from a given directory. I was originally following this answer but I couldn't figure out how to give it multiple extensions.

How do I get a list of files with specific file extension using node.js?

function fName(fp){
    const { readdirSync } = require('fs');
    const path = require("path");
    const fs = require('fs');
    
    // dont need whole filepaths atm
    // const gl = require('glob');
    
    //gl(fp + `/**/*.@(jpg|png)`, {}, (err, files) => {
    //  console.log(files)
    // })

    let extensions = ["jpg", "jpeg", "png"];

    let nameFilter = [];
    const rawFileNames = readdirSync(fp, {withFileTypes: true})
    .filter(dirent => dirent.isFile())
    .map(dirent => dirent.name)

    //filter the extensions
    let fileNames = rawFileNames.filter(file => {
        path.extname(file).toLowerCase() === extensions;
    })

    console.log(fileNames);

    
}

EDIT

I also just attempted to make a function that iterates over the extension list and call it, but it still returns an empty array

 let extensions = ["jpg", "jpeg", "png"];

        let getexts = function(exte){
            for (ex in exte){
                return exte[ex];
            }
        }

        let nameFilter = [];
        const rawFileNames = readdirSync(fp, {withFileTypes: true})
        .filter(dirent => dirent.isFile())
        .map(dirent => dirent.name)

        //filter the extensions
        let fileNames = rawFileNames.filter(file => {
            path.extname(file).toLowerCase() === getexts(extensions);
        })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

In your filter, couldn't you just do:

let fileNames = rawFileNames.filter(file => {
    return extensions.includes(path.extname(file).toLowerCase())
})
about 4 years ago · Juan Pablo Isaza Relatório

0

Modify your filer condition as below.

//filter the extensions
let fileNames = rawFileNames.filter(file => {
  return extensions.includes(path.extname(file).toLowerCase())      
});

console.log(fileNames);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda