在nodejs中删除以单词开头的文件夹文件

s6fujrry  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(118)

我用的是nodejs
嗨,我需要删除文件夹中以单词开头的所有文件。
我尝试了下一个代码,但没有看:

const deleteFile = (path, regex) => {
  fs.readdirSync(path)
    .filter(f => regex.test(f))
    .map(f => fs.unlinkSync(path + f));
};

const starting_filename="name_to_delete";

if (tenantInstance.companyLogoUrl) {
    const path = join(__dirname, "..", "..", "..", "public");
    const regex = `/^${starting_filename}+/`;
    deleteFile(path, new RegExp(regex));
  }
lyfkaqu1

lyfkaqu11#

斜杠是RegExp字面量语法的一部分,在使用new RegExp()时,您不会将它们环绕在字符串周围--这将尝试匹配字面量斜杠字符。
在RegExp的末尾不需要+。匹配starting_filename的最后一个字符中的一个或多个字符的。当您使用test()而不是match()时,这是多余的,因为匹配范围有多远并不重要。

const regex = `^${starting_filename}`;

请注意,如果starting_filename包含任何在正则表达式中具有特殊含义的字符,则这将不起作用,需要对它们进行转义。参见How to escape regular expression special characters using javascript?

相关问题