Node.js readdir-仅查找文件

时间:2018-07-13 21:42:51

标签: node.js readdir

在阅读目录时,我目前有这个目录:

  fs.readdir(tests, (err, items) => {

      if(err){
        return cb(err);
      }

      const cmd = items.filter(v => fs.lstatSync(tests + '/' + v).isFile())
        .map(v => `./tests/${v} && `).concat('exit "$?"');

      k.stdin.end(`${cmd}`);
  });

首先,我需要在fs.lstatSync周围尝试/捕捉,我不想添加。 但是有一种方法可以使用fs.readdir仅查找文件吗?

类似的东西:

fs.readdir(tests, {type:'f'}, (err, items) => {});

有人知道吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,fs.readdir没有一个选项来指定您只在寻找文件,而不是文件夹/目录(按文档)。最好选择fs.readdir中的结果以筛选出目录。

https://nodejs.org/dist/latest-v10.x/docs/api/fs.html#fs_fs_readdir_path_options_callback

  

可选的options参数可以是指定   编码或带有encoding属性的对象,该对象指定   用于传递给回调的文件名的字符编码。如果   encoding设置为'buffer',返回的文件名将是   作为Buffer对象传递。

答案 1 :(得分:0)

是的fs.readdir目前无法执行此操作。

我向Node.js提出了一个问题,看起来它可能是一个不错的功能。

https://github.com/nodejs/node/issues/21804