问题描述
我使用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