0

我正在使用FindFirstFile/枚举文件夹的内容FindNextFile。我面临的问题是找到的一些子文件夹无法依次枚举,FindFirstFile返回“访问被拒绝”。所以我想检查这种情况,而不是首先将此类子文件夹包含在列表中。我找到了两种可能的解决方案:用 来检查路径_access(),或者用 来详细检查实际权限AccessCheck,但据说后者是重量级的,不像_access(),因为你需要打开和关闭一个句柄。问题是,_access对于我无法枚举的所有文件夹,总是成功FindFirstFile。除此之外还有其他解决方案AccessCheck吗?

另一种正面的方法是立即调用FindFirstFile,但这似乎又是一种浪费(我还需要首先确定该项目是否为文件夹,因此需要更多额外的工作)。

4

1 回答 1

2

对我的问题的评论很有帮助,并为所制定的问题提供了最简单的解决方案,但在进一步的研究中,我发现我无法枚举的文件夹是链接,它们FILE_ATTRIBUTE_REPARSE_POINT在其WIN32_FIND_DATA::dwAttributes字段中设置了属性位。检查这一点足以让我对这些项目实施特殊处理。

于 2018-09-24T14:51:02.747 回答