io和lfs似乎都没有检查这一点的选项。我需要使用这个功能来模拟一些执行此检查的代码。
lfs.attributes()
返回的表中似乎有一个未记录的permissions
字段。感谢@sifiejoe指出这一点,当我阅读代码时没有看到。
当然,另一种方法是尝试从文件中读取,这总是有效的,但可能会更慢。
你也可以试着打开文件并设置一个(当然是临时的)读取锁定。不过,不确定Lua中文件锁定的可移植性。
注意:检查文件是否可读,然后执行某些操作可能会因比赛条件而中断;文件的权限可以在您的检查和以下操作之间更改。