#javascript #node.js #ajax #fs
Вопрос:
Я могу удалить все файлы изображений (.png, .jpg и т. Д.), Но я не могу удалить папки…
Это мой блог с кодом:
router.post('/remove-file', async (req, res) => {
const removeDocuments = await req.body.removeDocuments
// removeDocuments[0] equals to '/assets/img/folder'
// removeDocuments[1] equals to '/assets/img/image.jpg'
if(removeDocuments){
for (let i = 0; i < removeDocuments.length; i ) {
fs.unlinkSync('.' removeDocuments[i])
}
res.send({
status: true
})
}
})
Код ошибки, который я получаю:
(node:808) UnhandledPromiseRejectionWarning: Error: EPERM: operation not permitted, unlink './assets/img/folder'
В чем проблема, которую я сделал? Как это решить?
Ответ №1:
Разорвать связь удаляет имя из файловой системы и файл, на который оно ссылается. Он не удаляет каталоги, так как это может привести к созданию файлов-сирот. Используйте rmSync с recursive: true
для удаления каталогов.
Комментарии:
1. Это работает, спасибо. Также
rmdirSync
работает без использованияrecursive: true
. Но удаляет только пустые папки!!!