我正在使用FindFirstFile
/ FindNextFile
枚举文件夹的内容。我面临的问题是找到的某些子文件夹无法依次枚举,FindFirstFile
返回“访问被拒绝”。因此,我想检查这种情况,而不首先将此类子文件夹包括在列表中。我发现了两种可能的解决方案:使用_access()
检查路径,或使用AccessCheck
详细检查实际权限,但是与_access()
不同,后者被认为是重量级的,因为您需要打开和关闭手柄。问题是,_access
对于我无法用FindFirstFile
枚举的所有文件夹总是成功。除了AccessCheck
之外还有其他解决方案吗?
另一种正面处理方法是立即致电FindFirstFile
,但这似乎是一种浪费(而且我首先还需要确定该项目是否是文件夹,因此还要做更多的工作)
答案 0 :(得分:1)
关于我的问题的评论非常有用,可以为提出的问题提供最简单的解决方案,但是在进一步研究中,我发现无法枚举的文件夹是链接,它们在属性中设置了FILE_ATTRIBUTE_REPARSE_POINT
位他们的WIN32_FIND_DATA::dwAttributes
字段。对此进行检查就足以对这些物品实施特殊处理。