过滤使用readdirp读取的文件

时间:2019-06-20 06:03:20

标签: javascript node.js npm

我正在使用此readdirp npm package来读取嵌套目录中的文件。

它还可以选择过滤文件。

通过使用我添加了文件过滤器

readdirp('.', {fileFilter: '!image001.png', alwaysStat: true}) 
 .on('data', (entry) => { const {path, stats: {size}} = entry; 
  console.log(${JSON.stringify({path, size})}); 
})

我的情况是,如果该文件image001.png存在两个或多个不同的嵌套目录,并且我不得不仅从一个位置跳过该文件,那么该如何从特定位置指定该特定文件? >

我尝试使用下面的代码,但无法正常工作,我认为readdirp在内部仅与文件名进行比较,而不是使用picomatch的路径。

readdirp('.', {fileFilter: '!D:fileuploader\NEW_TEST\image001.png', 
  alwaysStat: true}) .on('data', (entry) => { 
    const {path, stats: {size}} = entry; 
      console.log(`${JSON.stringify({path, size})}`); 
 })

有什么办法吗?

注意:我也在他们的github页面上问过这个问题,因为有人可能会遇到此问题,并且可能也已解决。

1 个答案:

答案 0 :(得分:1)

从您共享的代码中我了解到,您只需要从当前目录中跳过一个文件。在这种情况下,您可以设置一个条件以跳过该文件而不是对其进行过滤。请检查以下代码。

readdirp('.', { alwaysStat: true}).on('data', (entry) => {
    const {path, stats: {size}} = entry;
    if(path!="image001.png")
       console.log(JSON.stringify({path, size}));
});