30

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

4

4 回答 4

25

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

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

  // Your code
});
于 2016-05-04T14:25:22.053 回答
5

您可以使用:

fs.readdir('/path/to/directory', function(err, list) {
  list.forEach(function (filename) {
    if(! /^\..*/.test(filename)) {
      // display files
    }
  });
});
于 2015-08-10T16:55:59.993 回答
0

承诺方式

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

const readdir = path => {
  return fs
    .readdir(path)
    .then(list => list.filter(item => !/(^|\/)\.[^/.]/g.test(item)));
};
于 2020-11-26T23:21:13.613 回答
0

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

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

fs.readdir('path', function (err, files) {
    console.log(files.filter(junk.not));
});
于 2016-08-05T07:58:13.607 回答