Método Node.js fs.readdir()

El método fs.readdir() se utiliza para leer de forma asíncrona el contenido de un directorio determinado. La devolución de llamada de este método devuelve una array de todos los nombres de archivo en el directorio. El argumento de opciones se puede usar para cambiar el formato en el que se devuelven los archivos desde el método.

Sintaxis:

fs.readdir( path, options, callback )

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:

  • ruta: Contiene la ruta del directorio desde donde se debe leer el contenido. Puede ser una string, un búfer o una URL.
  • options: Es un objeto que se puede utilizar para especificar parámetros opcionales que afectarán al método. Tiene dos parámetros opcionales:
    • codificación: es un valor de string que especifica qué codificación se usaría para los nombres de archivo dados al argumento de devolución de llamada. El valor predeterminado es ‘utf8’.
    • withFileTypes: es un valor booleano que especifica si los archivos se devolverán como objetos fs.Dirent. El valor predeterminado es ‘falso’.
  • callback: Es la función que sería llamada cuando se ejecuta el método.
    • err: Es un error que se lanzaría si falla la operación.
    • archivos: Es una array de objetos String, Buffer o fs.Dirent que contienen los archivos en el directorio.

Los siguientes ejemplos ilustran el método fs.readdir() en Node.js:

Ejemplo 1: este ejemplo utiliza el método fs.readdir() para devolver los nombres de archivo o los objetos de archivo en el directorio.

// Node.js program to demonstrate the
// fs.readdir() method
  
// Import the filesystem module
const fs = require('fs');
  
// Function to get current filenames
// in directory
fs.readdir(__dirname, (err, files) => {
  if (err)
    console.log(err);
  else {
    console.log("\nCurrent directory filenames:");
    files.forEach(file => {
      console.log(file);
    })
  }
})
  
// Function to get current filenames
// in directory with "withFileTypes"
// set to "true" 
  
fs.readdir(__dirname, 
  { withFileTypes: true },
  (err, files) => {
  console.log("\nCurrent directory files:");
  if (err)
    console.log(err);
  else {
    files.forEach(file => {
      console.log(file);
    })
  }
})

Producción:

Current directory filenames:
index.js
package.json
text_file_a.txt
text_file_b.txt

Current directory files:
Dirent { name: 'index.js', [Symbol(type)]: 1 }
Dirent { name: 'package.json', [Symbol(type)]: 1 }
Dirent { name: 'text_file_a.txt', [Symbol(type)]: 1 }
Dirent { name: 'text_file_b.txt', [Symbol(type)]: 1 }

Ejemplo 2: este ejemplo usa el método fs.readdir() para devolver solo los nombres de archivo con la extensión «.txt».

// Node.js program to demonstrate the
// fs.readdir() method
  
// Import the filesystem module
const fs = require('fs');
const path = require('path');
  
// Function to get current filenames
// in directory with specific extension
fs.readdir(__dirname, (err, files) => {
  if (err)
    console.log(err);
  else {
    console.log("\Filenames with the .txt extension:");
    files.forEach(file => {
      if (path.extname(file) == ".txt")
        console.log(file);
    })
  }
})

Producción:

Filenames with the .txt extension:
text_file_a.txt
text_file_b.txt

Referencia: https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *