当我们需要读取文件夹中的所有文件名时,可以使用node.js中fs模块下的readdir和readdirSync方法。本文主要讲解如何使用readdirSync方法来读取文件夹中的所有文件名。
fs.readdirSync方法的语法
readdirSync方法用于同步地读取指定目录下的所有文件名,其语法如下:
fs.readdirSync(path[, options])
其中,path
参数表示要读取的目录路径,options
参数是可选的。如果指定了options
参数,则可以设置其属性,如下所示:
encoding
:指定目录下文件名的编码方式,默认为'utf8'
;withFileTypes
:指定是否返回fs.Dirent
实例,默认为false
。
如果指定了options.encoding
为'utf8'
,则返回的数组中的每个元素都是文件名的字符串形式。如果指定了options.withFileTypes
为true
,则返回的数组中的每个元素都是一个fs.Dirent
实例,可以通过该实例获取文件的类型、大小等信息。
fs.readdirSync方法的使用方法
下面通过两个实例来讲解如何使用readdirSync
方法。
实例一:读取指定目录下的所有文件名
在这个示例中,我们将使用readdirSync
方法来读取某个目录下的所有文件名,并将其打印出来。
const fs = require('fs');
const folderPath = './testFolder';
const files = fs.readdirSync(folderPath);
console.log(files);
上述代码中,我们定义了一个folderPath
变量,用于存储目标目录的路径。然后通过调用fs.readdirSync
方法,并将目录路径传入该方法,来获取该目录下的所有文件名。最后,我们将获取到的文件名数组打印在控制台上。
实例二:读取指定目录下的所有文件名和文件类型
在这个示例中,我们将使用readdirSync
方法来读取某个目录下的所有文件名和文件类型,然后根据其类型进行分类,并将结果打印在控制台上。
const fs = require('fs');
const folderPath = './testFolder';
const files = fs.readdirSync(folderPath, { withFileTypes: true });
const dirList = [];
const fileList = [];
files.forEach((file) => {
if (file.isDirectory()) {
dirList.push(file.name);
} else {
fileList.push(file.name);
}
});
console.log('Directory List:', dirList);
console.log('File List:', fileList);
上述代码中,我们通过传入{ withFileTypes: true }
作为options
参数,来获取每个文件的fs.Dirent
实例。然后,我们定义了dirList
数组用于存储目录名,fileList
数组用于存储文件名。通过遍历files
数组,判断每个元素是否为目录,从而将目录名和文件名分别存储到dirList
和fileList
数组中。最后,我们将结果打印在控制台上。
总结
在本文中,我们介绍了node.js中fs模块下的readdirSync方法,提供了其语法和使用方法,并给出了两个实例供大家参考。希望本文能够对你了解如何使用fs模块下的readdirSync方法有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js中的fs.readdirSync方法使用说明 - Python技术站