Как отобразить все файлы в каталоге с помощью Node.js?
Файлы, находящиеся в каталоге, можно отобразить с помощью двух подходов в Node.js, которые обсуждаются ниже:
Метод 1. Использование метода fs.readdirSync (). Метод fs.readdirSync()
доступен в модуле файловой системы Node.js. Он используется для чтения содержимого каталога. Он возвращает массив путей к файлам, буферов или объектов fs.Dirent.
Возвращенный массив файлов может быть перебран с помощью цикла forEach (), и имена файлов могут быть отображены из него. Это позволяет отображать все имена файлов, присутствующие в каталоге.
Асинхронный вариант метода fs.readdir()
также может использоваться вместо этой функции, которая возвращает обратный вызов с файлами вместо самих файлов.
Пример:
// 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( "
Filenames in directory:" ); filenames.forEach((file) => { console.log( "File:" , file); }); |
Выход:
Имена файлов в каталоге: Файл: file_a.txt Файл: file_b.txt Файл: file_c.txt
Метод 2: Использование метода fs.opendirSync (): Метод fs.opendirSync()
доступен в модуле файловой системы Node.js. Его можно использовать для чтения содержимого каталога. Он возвращает fs.Dir
, представляющий данный каталог.
Объект fs.Dir
можно использовать для доступа к файлам в этом каталоге с помощью readSync()
. Этот метод возвращает fs.Dirent
, содержащий представление записи каталога. Этот объект имеет name
которое можно использовать для получения имени файла, на который fs.Dirent
этот объект fs.Dirent. Это имя может быть доступно и отображено для этого пользователя. Метод readSync()
автоматически прочитает следующую запись в каталоге и вернет значение null, если записей больше нет. Это можно использовать для непрерывного перебора записей и получения всех имен файлов с помощью цикла while.
Асинхронный вариант метода fs.opendir()
также может использоваться вместо этой функции, которая возвращает обратный вызов с fs.Dir
вместо самого объекта.
Пример:
// 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( "
Path 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 ; } |
Выход:
Путь к каталогу: example_dir Файлы в каталоге: Имя: file_a.txt Имя: file_b.txt Имя: file_c.tx