如何忽略fs.readdir结果中的隐藏文件

时间:2013-09-24 05:33:52

标签: node.js

在节点应用程序中,我需要获取目录中除隐藏文件之外的所有文件。 我已经尝试了fs.readdir,但它也显示了隐藏文件。

4 个答案:

答案 0 :(得分:11)

使用this答案的正则表达式,这个简单的解决方案从结果中删除所有隐藏文件:

fs.readdir('/path/to/directory', (err, list) => {
  list = list.filter(item => !(/(^|\/)\.[^\/\.]/g).test(item));

  // Your code
});

答案 1 :(得分:3)

您可以使用:

fs.readdir('/path/to/directory', function(err, list) {
  list.forEach(function (filename) {
    if(! /^\..*/.test(filename)) {
      // display files
    }
  });
});

答案 2 :(得分:0)

我使用junk包来忽略隐藏文件。

var fs = require('fs');
var junk = require('junk');

fs.readdir('path', function (err, files) {
    console.log(files.filter(junk.not));
});

答案 3 :(得分:0)

承诺方式

const fs = require('fs').promises;

const readdir = path => {
  return fs
    .readdir(path)
    .then(list => list.filter(item => !/(^|\/)\.[^/.]/g.test(item)));
};