fs-extra throwing ОШИБКА: EBUSY: ресурс занят или заблокирован
Я пытаюсь удалить один файл и одну папку асинхронно с помощью fs-extra. Но это бросает следующую ошибку.
import fse from 'fs-extra';
function deleteMethod (foldername){
fse.remove(`${foldername}-tar.gz`)
.then(() => fse.remove(foldername))
.then(() => çonsole.log('successfully deleted'))
.catch((err) => console.log(err))
}
Отклик:
{ [Error: EBUSY: resource busy or locked, unlink'D:rootpath\15\image.jpg']
errno: -4082,
code: 'EBUSY',
syscall:'unlink',
path: 'D:rootpath\15\image.jpg' }
Произошла ошибка во втором операторе удаления. Может кто-нибудь объяснить, пожалуйста, почему это происходит.
1 ответ
Эта проблема возникает из-за того, что другая программа в настоящее время обращается к этому файлу и может изменить его содержимое в любое время (теоретически), и, следовательно, ваша ОС также не позволит вам вносить изменения. Это верно для всех операционных систем. ОС не хочет, чтобы несколько копий одного и того же файла открывались в разных программах, так как это сделает невозможным определение того, какая копия является истинной версией, или как правильно объединить изменения и т. Д. По сути, вы должны завершить программу, которая в настоящее время использует этот файл, чтобы читать / писать в него.