¿Cómo mostrar todos los archivos en un directorio usando Node.js?

Los archivos presentes en un directorio se pueden mostrar utilizando dos enfoques en Node.js que se analizan a continuación:

Método 1: uso del método fs.readdirSync() : es un método fs.readdirSync()que está disponible en el módulo del sistema de archivos de Node.js. Se utiliza para leer el contenido de un directorio. Devuelve una array de rutas de archivos, búferes u objetos fs.Dirent.

La array de archivos devuelta se puede recorrer mediante el bucle forEach() y los nombres de los archivos se pueden mostrar desde allí. Esto permite mostrar todos los nombres de archivos presentes en el directorio.

La variación asincrónica del método fs.readdir()también se puede usar en lugar de esta función que devuelve una devolución de llamada con los archivos en lugar de los archivos mismos.

Ejemplo:

// Import the filesystem module
const fs = require("fs");
  
let directory_name = "example_dir";
  
// Function to get current filenames
// in directory
let filenames = fs.readdirSync(directory_name);
  
console.log("\nFilenames in directory:");
filenames.forEach((file) => {
    console.log("File:", file);
});

Producción:

Filenames in directory:
File: file_a.txt
File: file_b.txt
File: file_c.txt

Método 2: Usar el método fs.opendirSync(): El fs.opendirSync()método está disponible en el módulo del sistema de archivos de Node.js. Se puede utilizar para leer el contenido de un directorio. Devuelve un fs.Dirobjeto que representa el directorio dado.

El fs.Dirobjeto se puede usar para acceder a los archivos en ese directorio usando el readSync()método. Este método devuelve un fs.Direntobjeto que contiene la representación de la entrada del directorio. Este objeto tiene una namepropiedad que se puede usar para obtener el nombre del archivo al que se fs.Direntrefiere este objeto. Este nombre puede ser accedido y mostrado a este usuario. El readSync()método leerá automáticamente la siguiente entrada del directorio y devolverá un valor nulo cuando no existan más entradas. Esto se puede usar para recorrer continuamente las entradas y obtener todos los nombres de archivo usando un ciclo while.

La variación asincrónica del método fs.opendir()también se puede usar en lugar de esta función que devuelve una devolución de llamada con el fs.Dirobjeto en lugar del objeto mismo.

Ejemplo:

// Import the filesystem module
const fs = require("fs");
  
let directory_name = "example_dir";
  
// Open the directory
let openedDir = fs.opendirSync(directory_name);
  
// Print the pathname of the directory
console.log("\nPath of the directory:", openedDir.path);
  
// Get the files present in the directory
console.log("Files Present in directory:");
  
let filesLeft = true;
while (filesLeft) {
  // Read a file as fs.Dirent object
  let fileDirent = openedDir.readSync();
  
  // If readSync() does not return null
  // print its filename
  if (fileDirent != null)
    console.log("Name:", fileDirent.name);
  
  // If the readSync() returns null
  // stop the loop
  else filesLeft = false;
}

Producción:

Path of the directory: example_dir
Files Present in directory:
Name: file_a.txt
Name: file_b.txt
Name: file_c.tx

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 *