Фильтр файлов, прочитанных с использованием readdirp - PullRequest
0 голосов
/ 20 июня 2019

Я использую этот пакет readdirp npm для чтения файлов во вложенных каталогах.

И он также может фильтровать файлы.

Используя это, я добавил фильтр файлов

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 Ответ

1 голос
/ 20 июня 2019

Из кода, которым вы поделились, я понимаю, что вам нужно пропустить только один файл из текущего каталога.В этом случае вы можете поставить одно условие, чтобы пропустить этот файл вместо его фильтрации.Пожалуйста, проверьте следующий код.

readdirp('.', { alwaysStat: true}).on('data', (entry) => {
    const {path, stats: {size}} = entry;
    if(path!="image001.png")
       console.log(JSON.stringify({path, size}));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...