的NodeJS:fs.stat()或fs.access()检查一个文件夹是否存在?
目前我正在试图找出“正确”的方式,检查本地文件夹中存在一个文件保存到它之前是由文档的NodeJS弄得一点点。
fs.exists()已被废弃,你应该fs.stat()或fs.access()使用。到现在为止还挺好。
fs.stat():
使用fs.stat()调用fs.open()之前检查文件是否存在,fs.readFile()或不推荐fs.writeFile()。相反,用户代码应打开/读/直接将文件编写和处理错误提出,如果该文件不可用。
这个规定,我应该只是尝试写,捕获错误,创建文件夹,然后再试一次。也没意见,即使我移动/重命名文件,所以我不直接使用的上述三个功能之一。
然后,该医生说:
要检查文件是否存在,而无需操纵之后它,fs.access()的建议。
因为我没有真正修改文件,但“只”它的内容,人们可能会认为这是要走的路。
不过话又说回来,在fs.access()文档深入讨论了为什么这是一个坏主意,太:
使用fs.access()调用fs.open()之前检查文件的可访问性,fs.readFile()或不推荐fs.writeFile()。这样做引入了竞争条件,因为其他进程可能会改变两个电话之间的文件的状态。相反,用户代码应打开/读/直接将文件编写和处理错误提出,如果该文件是不可访问。
Yadda内容非常重要,目前已经有些相关问题(here,或here),但有关于这不超过两岁的“最佳实践”的任何官方信息?
回答如下:正确的方法,但我不认为节点支持它,是打开的目录获得dirfd。这是只开放应使用,然后faccess或FSTAT可以在dirfd或fd被调用。然后,如果目录的开放获得成功以后,使用了openat与dirfd打开文件。
我写了使用fs.createReadStream和处理的错误,如果路径不是文件的HTTP服务器。它也可用于暂停和恢复,以便能够在打开的文件使用FSTAT前的数据流开始管的响应。
的NodeJS:fs.stat()或fs.access()检查一个文件夹是否存在?
目前我正在试图找出“正确”的方式,检查本地文件夹中存在一个文件保存到它之前是由文档的NodeJS弄得一点点。
fs.exists()已被废弃,你应该fs.stat()或fs.access()使用。到现在为止还挺好。
fs.stat():
使用fs.stat()调用fs.open()之前检查文件是否存在,fs.readFile()或不推荐fs.writeFile()。相反,用户代码应打开/读/直接将文件编写和处理错误提出,如果该文件不可用。
这个规定,我应该只是尝试写,捕获错误,创建文件夹,然后再试一次。也没意见,即使我移动/重命名文件,所以我不直接使用的上述三个功能之一。
然后,该医生说:
要检查文件是否存在,而无需操纵之后它,fs.access()的建议。
因为我没有真正修改文件,但“只”它的内容,人们可能会认为这是要走的路。
不过话又说回来,在fs.access()文档深入讨论了为什么这是一个坏主意,太:
使用fs.access()调用fs.open()之前检查文件的可访问性,fs.readFile()或不推荐fs.writeFile()。这样做引入了竞争条件,因为其他进程可能会改变两个电话之间的文件的状态。相反,用户代码应打开/读/直接将文件编写和处理错误提出,如果该文件是不可访问。
Yadda内容非常重要,目前已经有些相关问题(here,或here),但有关于这不超过两岁的“最佳实践”的任何官方信息?
回答如下:正确的方法,但我不认为节点支持它,是打开的目录获得dirfd。这是只开放应使用,然后faccess或FSTAT可以在dirfd或fd被调用。然后,如果目录的开放获得成功以后,使用了openat与dirfd打开文件。
我写了使用fs.createReadStream和处理的错误,如果路径不是文件的HTTP服务器。它也可用于暂停和恢复,以便能够在打开的文件使用FSTAT前的数据流开始管的响应。