下面是关于“NodeJS遍历文件生产文件列表功能示例”的完整攻略。
前置知识
- Node.js基础语法
- 文件系统(fs)模块的常用API
代码实现
实现遍历文件并生产文件列表,需要用到Node.js自带的文件系统模块(fs)。首先,我们需要引入fs模块。
const fs = require('fs');
接着,定义一个函数readDirSync来遍历文件夹,代码如下:
function readDirSync(path) {
let fileList = [];
const files = fs.readdirSync(path);
files.forEach(file => {
const filePath = `${path}/${file}`;
const stats = fs.statSync(filePath);
if (stats.isDirectory()) {
fileList = fileList.concat(readDirSync(filePath));
} else {
fileList.push(filePath);
}
});
return fileList;
}
这段代码的作用是递归读取path目录下所有文件,并将文件路径存储在数组fileList中。如果遍历到的是一个文件夹,就会继续递归遍历该文件夹下的所有文件,在遍历过程中,如果遍历到的是一个文件,则将其路径加入到数组中。
最后,我们可以调用readDirSync函数,并将目标文件夹的路径传入。代码如下:
const fileList = readDirSync('./test'); // './test'为目标文件夹路径
console.log(fileList);
这样我们就完成了遍历文件并生产文件列表的功能。
示例说明
示例1
假设我们要遍历用户上传的所有图片并将其路径保存下来。首先,我们可以将所有上传的图片存储在一个文件夹中,比如:'./uploads'。然后,我们可以使用readDirSync函数来遍历'./uploads'文件夹,并将每个图片的路径存储在数组中。代码如下:
const fileList = readDirSync('./uploads');
console.log(fileList);
这样,我们就可以得到一个包含所有图片路径的数组。
示例2
假设我们需要遍历某个目录下,所有名字以'.js'结尾的文件,并将其路径存储在数组中。我们可以在readDirSync函数中新增一个过滤器,用来过滤不符合条件的文件。代码如下:
function readDirSync(path) {
let fileList = [];
const files = fs.readdirSync(path);
files.forEach(file => {
const filePath = `${path}/${file}`;
const stats = fs.statSync(filePath);
if (stats.isDirectory()) {
fileList = fileList.concat(readDirSync(filePath));
} else {
if (filePath.endsWith('.js')) {
fileList.push(filePath);
}
}
});
return fileList;
}
const fileList = readDirSync('./test'); // './test'为目标文件夹路径
console.log(fileList);
这样,我们就可以得到一个包含所有名字以'.js'结尾的文件路径的数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJS遍历文件生产文件列表功能示例 - Python技术站