如何解决使用scandir时,如何跳过我无权读取/访问的文件,以避免所有记录的错误?
我使用scandir()
在计算机上搜索目录。我还尝试了DirectoyIterator
和 exact 相同的结果(它似乎在内部使用scandir()
)。一些子目录显然具有特殊权限,因为它们会用以下内容污染我的错误日志:
scandir(C:\Program Files\Windows Defender Advanced Threat Protection\Classification\Configuration,C:\Program Files\Windows Defender Advanced Threat Protection\Classification\Configuration): Access is denied. (code: 5)
我不需要搜索该目录,但是scanddir()
可以完成它的工作而无需我根据目录名或名称进行任何检查,例如is_readable
或continue
像这样的东西。
谁知道我没有“访问权”的其他目录?逐个命名它们很容易成为噩梦,这就是为什么我只想跳过那些会记录错误的内容。但是,即使我想一个个地命名它们,也不能这样做,因为scandir()
显然没有配置它的方法。 (我可以从手册中得知。)
解决方法
您可以使用* Expected kind `* -> Constraint',but `Int' has kind `*'
* In the type signature: replica :: Int a => a -> a
来检查您是否具有权限。如果不是,则需要确保目录具有读取权限。
检查此链接:https://www.php.net/manual/fr/function.is-readable.php
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。