Javascript 删除特定目录中名称以节点js中的特定字符串开头的所有文件

Javascript 删除特定目录中名称以节点js中的特定字符串开头的所有文件,javascript,node.js,fs,unlink,Javascript,Node.js,Fs,Unlink,我想删除某个目录中文件名以相同字符串开头的所有文件,例如,我有以下目录: public/ profile-photo-SDS@we3.png profile-photo-KLs@dh5.png profile-photo-LSd@sd0.png cover-photo-KAS@hu9.png public/ cover-photo-KAS@hu9.png 因此,我想应用一个函数来删除以字符串profile photo开头的所有文件,

我想删除某个目录中文件名以相同字符串开头的所有文件,例如,我有以下目录:

public/
      profile-photo-SDS@we3.png
      profile-photo-KLs@dh5.png
      profile-photo-LSd@sd0.png
      cover-photo-KAS@hu9.png
public/
      cover-photo-KAS@hu9.png
因此,我想应用一个函数来删除以字符串
profile photo
开头的所有文件,以便在末尾具有以下目录:

public/
      profile-photo-SDS@we3.png
      profile-photo-KLs@dh5.png
      profile-photo-LSd@sd0.png
      cover-photo-KAS@hu9.png
public/
      cover-photo-KAS@hu9.png
我正在寻找这样的功能:

fs.unlink(path, prefix , (err) => {

});

使用
glob
npm包:

正如Sergey Yarotskiy所说,使用像
glob
这样的软件包可能是理想的,因为该软件包已经过测试,可以使过滤文件更加容易

也就是说,您可以采用的一般算法方法是:

const fs = require('fs');
const { resolve } = require('path');

const deleteDirFilesUsingPattern = (pattern, dirPath = __dirname) => {
  // default directory is the current directory

  // get all file names in directory
  fs.readdir(resolve(dirPath), (err, fileNames) => {
    if (err) throw err;

    // iterate through the found file names
    for (const name of fileNames) {

      // if file name matches the pattern
      if (pattern.test(name)) {

        // try to remove the file and log the result
        fs.unlink(resolve(name), (err) => {
          if (err) throw err;
          console.log(`Deleted ${name}`);
        });
      }
    }
  });
}

deleteDirFilesUsingPattern(/^profile-photo+/);

这对我很有帮助,我确实需要修改取消链接中的resolve(名称),使其更像resolve(dirPath+name)。