【问题标题】:Listing files in a directory, where the filename matches a regex in JS列出目录中的文件,其中文件名与 JS 中的正则表达式匹配
【发布时间】:2014-02-21 20:45:48
【问题描述】:

我想获取目录中遵循特定模式的所有文件名。我发现,我可以通过执行以下操作来完成此操作:

var fs = require('fs');

fs.readdir( dir, function(err, list) {
    if(err)
        throw err;
    var regex = new RegExp(".*");
    list.forEach( function(item) {
    if( regex.test(item) ) 
       console.log(item);
    }); 
});

我想知道,是否还有另一种可能在不使用循环的情况下执行此操作,例如将正则表达式传递给fs.readdir(..)
这有可能吗,还是我必须使用循环?

【问题讨论】:

    标签: javascript regex node.js meteor


    【解决方案1】:

    您可以使用npm atmosphere package 来使用其他 NPM 模块。这将让您使用流行的glob NPM module。这使用 glob 模式,它比正则表达式模式更常见于匹配文件名。

    【讨论】:

      【解决方案2】:

      根据文档,函数fs.readdir 在调用回调之前不使用正则表达式来过滤文件名。它明确提到使用readdir(3),它没有正则表达式的概念。

      所以你必须遍历结果并过滤它们。或者也许使用可以为您做这件事的 3rd 方库,但 fs.readdir 不会自己做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多