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

Эта проблема возникает из-за того, что другая программа в настоящее время обращается к этому файлу и может изменить его содержимое в любое время (теоретически), и, следовательно, ваша ОС также не позволит вам вносить изменения. Это верно для всех операционных систем. ОС не хочет, чтобы несколько копий одного и того же файла открывались в разных программах, так как это сделает невозможным определение того, какая копия является истинной версией, или как правильно объединить изменения и т. Д. По сути, вы должны завершить программу, которая в настоящее время использует этот файл, чтобы читать / писать в него.

Другие вопросы по тегам