需要使用 node js 忽略一些目录

Need to ignore some Directories using node js

这甚至可以忽略几个子目录并读取主目录中存在的其余子目录

喜欢:

Main Directory
-sub-directory1
-sub-directory2
-ABC Folder
-PQR Folder
-sub-directory3

output: 
[sub-directory1
sub-directory2
PQR]

ignore:
[ABC
sub-directory3]

我有读取所有目录和文件的代码,我想区分一些目录

const fs = require("fs");
const path = require("path");

async function getFile(folderPath) {
  let files = await fs.readdir(folderPath);
  files = await Promise.all(
    files.map(async (file) => {
      const filePath = path.join(folderPath, file);
      const stats = await fs.stat(filePath);
      if (stats.isDirectory()) {
        return getFile(filePath);
      } else if (stats.isFile()) return filePath;
    })
  );

  return files.reduce((all, folderContents) => all.concat(folderContents), []);
}

请帮忙

我写了函数getFilesSync第一个参数是你想要获取的目录,第二个参数是数组——要忽略的文件夹名称列表。

const fs = require("fs");

function getFilesSync(fPath, ignore, response) {
  if (!response) { response = []; }
  if (!ignore) { ignore = []; }

  var files = fs.readdirSync(__dirname+fPath);
  for (var i = 0; i < files.length; i++) {
    if (fs.statSync(__dirname+fPath+"/"+files[i]).isDirectory()) {
      var ign = false;
      for (var j = 0; j < ignore.length; j++) {
        if (ignore[j] == files[i]) {
          ign = true;
          break;
        }
      }
      if (!ign) {
        response.concat(getFilesSync(fPath+"/"+files[i], ignore, response));
      }
    } else {
      response.push(fPath+"/"+files[i]);
    }
  }
  return response;
}

console.log( getFilesSync("/test", ["test1", "test2"]) );