如何通过扩展名搜索文件并在文件夹和子文件夹中包含字符串?

时间:2018-11-27 15:27:36

标签: node.js search filesystems

是否可以通过提供的包含字符串来查找具有给定扩展名的文件?

我的方法应该是什么?例如,输入为txthello,输出为包含扩展名为hello的字符串txt的所有文件的列表。

1 个答案:

答案 0 :(得分:0)

您可以使用readdir方法使用FileSystem来获取文件夹的内容,这将为您返回一个字符串数组。

比方说,您的工作目录是一个src文件,其中有一个您要读取的files文件夹。您的脚本如下所示:

const fs = require('fs');

var files = fs.readdir('./files', (err, filenames) => {
    if (err) throw err;
    return filenames;
})

然后可以使用字符串方法分隔字符串。假设您要拥有两个变量fileNamefileExt 您将使用String.split(separator)方法,并使用.字符作为分隔符。

var files = // fs snippet above

for (file in files) {
    let fileComponents = file.split('.');

    let fileName = fileComponents[0];
    let fileExt = fileComponents[1];

    // You can run your code on the name, and extension of your file here.
}

这不适用于名称中包含多个点的文件。您将需要对数组进行额外的工作,以确保fileName包含每个串联的字符串,并用.分隔,直到fileComponents字符串的最终索引为止。