最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

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

IT培训 admin 2浏览 0评论

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

我想删除目录中的几个文件,匹配正则表达式。像这样的东西:

// 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/package/glob

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

glob内部使用minimatch。它的工作原理是将glob表达式转换为JavaScript RegExp对象。 https://github/isaacs/minimatch

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

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

我想删除目录中的几个文件,匹配正则表达式。像这样的东西:

// 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/package/glob

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

glob内部使用minimatch。它的工作原理是将glob表达式转换为JavaScript RegExp对象。 https://github/isaacs/minimatch

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

发布评论

评论列表 (0)

  1. 暂无评论