javascript – 删除(取消链接)匹配正则表达式的文件

我想从目录中删除几个文件,匹配正则表达式。这样的事情

// WARNING: not real code
require('fs').unlink(/script\.\d+\.js$/);

由于unlink不支持正则表达式,所以我使用它:

var fs = require('fs');

fs.readdir('.', (error, files) => {
    if (error) throw error;

    files.filter(name => /script\.\d+\.js$/.test(name)).forEach(fs.unlink);
});

这是有效的,但是IMO比它应该更复杂一些。

是否有更好的内置方式来删除与正则表达式匹配的文件(甚至只使用通配符)?

你可以查看glob https://npmjs.org/package/glob

require("glob").glob("*.txt", function (er, files) { ... });
//or
files = require("glob").globSync("*.txt");

glob内部使用最小化。它通过将glob表达式转换为JavaScript RegExp对象来起作用。 https://github.com/isaacs/minimatch

您可以使用回调中匹配的文件(或在返回对象的globSync的情况下)执行任何所需的操作。

http://stackoverflow.com/questions/14917757/delete-unlink-files-matching-a-regex

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 删除(取消链接)匹配正则表达式的文件