2016-10-11 4 views
0

Я использую этот кусок кода, чтобы удалить файл по требованиюУзел JS - Нет такого файла?

{ 
... 
    fs.access(path, (err)=> err || fs.unlink(path));  
... 
} 

Я получил эту ошибку

Error: ENOENT: no such file or directory, unlink 'C:\ ... ' at Error (native)

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

Как исправить эту ошибку?

Кроме того, мне нужно заблокировать файл до того, как я попытаюсь удалить его, чтобы гарантировать надежное и безопасное удаление. Я не буду там вручную удалять файл и перезапускать сервер каждый раз, когда пользователь пытается удалить их файл.

+0

* «Я буквально только что проверил на наличие файлов перед попыткой Разъединить» * - Не делай этого, это плохая практика. Не выполняйте проверки наличия файлов (они были устаревшими по какой-либо причине). Просто отмените связь и поймите ошибку, если она есть. – Tomalak

+0

Должен ли я отменить рекурсивно до тех пор, пока он не сработает –

+0

ошибки не будут, im confused –

ответ

1

вызов fs.access перед записью или удалением не рекомендуется. Пожалуйста, проверьте ссылку ниже https://nodejs.org/api/fs.html#fs_fs_access_path_mode_callback

Using fs.access() to check for the accessibility of a file before calling fs.open(), fs.readFile() or fs.writeFile() is not recommended. Doing so introduces a race condition, since other processes may change the file's state between the two calls. Instead, user code should open/read/write the file directly and handle the error raised if the file is not accessible. 

 Смежные вопросы

  • Нет связанных вопросов^_^