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.Dir
objeto que representa el directorio dado.
El fs.Dir
objeto se puede usar para acceder a los archivos en ese directorio usando el readSync()
método. Este método devuelve un fs.Dirent
objeto que contiene la representación de la entrada del directorio. Este objeto tiene una name
propiedad que se puede usar para obtener el nombre del archivo al que se fs.Dirent
refiere 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.Dir
objeto 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