gpt4 book ai didi

javascript - Nodejs 更改获取文件列表的函数也获取内容

转载 作者:太空宇宙 更新时间:2023-11-04 03:16:56 25 4
gpt4 key购买 nike

我有一个小函数,可以获取给定路径中具有指定扩展名的文件名。

这是代码:

getFileList(path, extension) {
let dir = fs.readdirSync( path );
return dir.filter( elm => elm.match(new RegExp(`.*\.(${extension})`, 'ig')));
}

我正在运行它并将结果添加到数组中。

像这样:

myArray = getFileList('the path', 'ext');

这工作正常,我现在需要使用文件名和文件内容将对象添加到数组中

例如:

myArray = []

getFileListAndContent('the path', 'ext'...);

结果示例:

myArray = [
{
filename: "filename1.ext",
content: "the content"
}
]

所以我需要它返回这样的东西(每个找到的文件):

 { filename: 'myfile1.doc', content: 'something here' }

如何更改函数以实现此目的?

最佳答案

循环遍历所有文件并一一读取其内容:

const fs = require('fs');
const path = require('path');

function getFileList(directory, extension) {
let dir = fs.readdirSync(directory);
let filelist = dir.filter( elm => elm.match(new RegExp(`.*\.(${extension})`, 'ig')));
return filelist.map(file => {
return {
filename: file,
content: fs.readFileSync(path.join(directory, file)).toString()
}
});
}

console.log(getFileList('path_here', 'doc'))

注意这是一个同步解决方案。
如果您有很长的文件列表,请考虑重构为异步格式:fs.readFile

关于javascript - Nodejs 更改获取文件列表的函数也获取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com