Node JS - 没有这样的文件?

时间:2016-10-11 18:25:53

标签: node.js file error-handling filestream chmod

我使用这段代码按需删除文件

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

我收到了这个错误

  

错误:ENOENT:没有这样的文件或目录,取消链接' C:\ ...'       在错误(本机)

这对我来说毫无意义,因为我在尝试取消链接之前只检查了文件是否存在 - 我感觉有些奇怪的事情会在文件锁定等幕后发生。

如何纠正此错误?

另外,在尝试删除之前,是否需要自己锁定文件,以确保可靠且安全的删除。每次用户尝试删除文件时,我都不会手动删除文件并重新启动服务器。

1 个答案:

答案 0 :(得分: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.