Как удалить все текстовые файлы в каталоге NodeJs - PullRequest
1 голос
/ 09 апреля 2019

Мне нужно удалить только текстовые файлы в каталоге (несколько уровней).Я рискнул бы предположить, что это возможно с fs-extra ... https://github.com/jprichardson/node-fs-extra

Но я не могу найти решение без указания индивидуального имени файла.

Я надеялся решить эту проблему следующим образом ...

fse.remove('./desktop/directory/*.txt')

но, к сожалению, звездочка не выбрала бы все ... поскольку я тогда мог бы сделать что-то вроде следующего...

fse.remove('./desktop/directory/sub1/*.txt')
fse.remove('./desktop/directory/sub1/sub2/*.txt')
fse.remove('./desktop/directory/sub1/sub2/sub3/*.txt')
fse.remove('./desktop/directory/sub1/sub2/sub3/sub4/*.txt')

Не самое чистое, что я знаю ... Но это все, что у меня есть.

Любая помощь или предложения по этому вопросу будут оценены.Спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Если вы используете rimraf, вы можете попробовать это.

const rimraf = require('rimraf');
rimraf.sync('**/*.txt');

rimraf принимает glob в качестве первого параметра.

Если вы хотите использовать его асинхронно, вы можете даже написать

rimraf('**/*.txt', options, () => {
 console.log('deleted')
})

Хотя fs-extra использует rimraf для удаления файла изнутри.

1 голос
/ 09 апреля 2019

Как насчет этого?

fse.remove('./desktop/directory/**/*.txt')

Добавление ** означает включение всех подкаталогов

...