windows - 检查应用程序是否具有对文件夹的读取权限(FindFirstFile 返回“访问被拒绝”但 _access 成功)
问题描述
我正在使用FindFirstFile
/枚举文件夹的内容FindNextFile
。我面临的问题是找到的一些子文件夹无法依次枚举,FindFirstFile
返回“访问被拒绝”。所以我想检查这种情况,而不是首先将此类子文件夹包含在列表中。我找到了两种可能的解决方案:用 来检查路径_access()
,或者用 来详细检查实际权限AccessCheck
,但据说后者是重量级的,不像_access()
,因为你需要打开和关闭一个句柄。问题是,_access
对于我无法枚举的所有文件夹,总是成功FindFirstFile
。除此之外还有其他解决方案AccessCheck
吗?
另一种正面的方法是立即调用FindFirstFile
,但这似乎又是一种浪费(我还需要首先确定该项目是否为文件夹,因此需要更多额外的工作)。
解决方案
对我的问题的评论很有帮助,并为所制定的问题提供了最简单的解决方案,但在进一步的研究中,我发现我无法枚举的文件夹是链接,它们FILE_ATTRIBUTE_REPARSE_POINT
在其WIN32_FIND_DATA::dwAttributes
字段中设置了属性位。检查这一点足以让我对这些项目实施特殊处理。
推荐阅读
- javascript - 如何在discord bot上删除所有角色并添加一个角色,然后删除添加的角色并恢复以前的角色
- c++ - 圆的面积使用圆中正方形的边的长度/C++
- javascript - 如何在 App Load 上加载 AsyncStorage 数据并在 Expo 中设置上下文?
- java - 制作一个处理二进制数并转换为十进制值的类,客户端类打印出来
- python - 如何找出 JIRA() 方法访问的 IP 和端口?
- javascript - 将 PHP 代码添加到动态生成的 HTML 数据中
- r - 如何根据R中列的百分位数保留行?
- grails - groovy:将字符串(这是一个列表)转换为 Groovy 列表
- python - NumpyBackend 对象没有属性 'tucker'
- javascript - THREE.js 水毛刺反射