我用的是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));
}
1条答案
按热度按时间lyfkaqu11#
斜杠是RegExp字面量语法的一部分,在使用
new RegExp()
时,您不会将它们环绕在字符串周围--这将尝试匹配字面量斜杠字符。在RegExp的末尾不需要
+
。匹配starting_filename
的最后一个字符中的一个或多个字符的。当您使用test()
而不是match()
时,这是多余的,因为匹配范围有多远并不重要。请注意,如果
starting_filename
包含任何在正则表达式中具有特殊含义的字符,则这将不起作用,需要对它们进行转义。参见How to escape regular expression special characters using javascript?