Как отобразить все файлы в каталоге с помощью Node.js?
Файлы, находящиеся в каталоге, можно отобразить с помощью двух подходов в Node.js, которые обсуждаются ниже:
Метод 1. Использование метода fs.readdirSync (). Метод fs.readdirSync() доступен в модуле файловой системы Node.js. Он используется для чтения содержимого каталога. Он возвращает массив путей к файлам, буферов или объектов fs.Dirent.
Возвращенный массив файлов может быть перебран с помощью цикла forEach (), и имена файлов могут быть отображены из него. Это позволяет отображать все имена файлов, присутствующие в каталоге.
Асинхронный вариант метода fs.readdir() также может использоваться вместо этой функции, которая возвращает обратный вызов с файлами вместо самих файлов.
Пример:
// Import the filesystem moduleconst fs = require("fs"); let directory_name = "example_dir"; // Function to get current filenames// in directorylet 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 moduleconst fs = require( "fs" ); let directory_name = "example_dir" ; // Open the directorylet openedDir = fs.opendirSync(directory_name); // Print the pathname of the directoryconsole.log( "
Path of the directory:" , openedDir.path); // Get the files present in the directoryconsole.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