javascript - 使用 readdirp 过滤读取的文件

标签 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 页面中问过这个问题,我在这里问,因为有人可能遇到这个问题并且也可能修复。

最佳答案

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

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

关于javascript - 使用 readdirp 过滤读取的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679871/

相关文章:

javascript - 如何在多个文本字段更改上使用相同的 JavaScript 例程?

javascript - html 自动播放在 Chrome 中无法正常工作

node.js - 使用 NPM 发布包时 GitLab '404 Not Found' 错误

maven - 前端 Maven 插件失败 npm 安装

javascript - 尝试使用 gh-pages 部署我的 React 应用程序但收到此错误消息 : The "file" argument must be of type string. Received type undefined

javascript - twitter bootstrap popover 插件错误 - this.isHTML 不是一个函数

javascript - Firefox 上的 moment.js 问题

javascript - NPM 每周下载量为零

javascript - 从 .js 文件读取所有代码并插入到 jade 模板中?

javascript - Node.js 事件发射器 : How to bind a class context to the event listener and then remove this listener