【问题标题】:System Volume Information: Access Denied系统卷信息:拒绝访问
【发布时间】:2011-01-19 15:08:49
【问题描述】:

我编写了一个程序,可以从头到尾在扇区级别搜索物理设备。现在我想创建一个只处理逻辑文件的例程。

因此,我需要使用本机 C++ 递归地列出 NTFS 卷(或 FAT32)上的所有目录和文件。我遇到的问题是每当我遇到 Windows 系统文件夹时都会出现“拒绝访问”错误。

C:\System Volume Information and
C:\Users

只是这些文件夹的两个示例。

我不想“跳过”这些目录。相反,它们对手头的项目最重要。

我尝试了 C++ 论坛等中提供的各种选项,但所有选项似乎都失败了(访问被拒绝),或者快速的答案是“跳过”它们。

此时,我想知道是否需要以某种方式查找这些文件夹的物理扇区并系统地跟踪每个文件夹的物理扇区级别的范围?

在这里寻求帮助,如果有任何想法,我将不胜感激。谢谢!

注意:我认为发布任何示例代码没有任何意义,只是因为我尝试了太多组合(其中大多数可以读取目录等),但所有这些都无法导航系统目录。

【问题讨论】:

    标签: c++ windows


    【解决方案1】:

    不是我推荐这个,但是既然你非常坚定,为什么不暂时用SetFileSecurity更改这些文件夹上的安全描述符,这样你就可以打开一个句柄,然后再改回来?应该可以的。

    【讨论】:

    • 这太过分了。只需启用 SeBackupPrivilege 就足够了。
    • @Luke:你真的试过这样做吗?我不记得我是否尝试过,但我记得遍历这些文件夹非常困难,我不确定这是否可行。
    • FindFirstFile 等。尊重备份/恢复权限。我刚刚通过测试程序验证了 100% 确定。
    • 哇哦,好吧。酷,谢谢分享!!我也会觉得这很有用! :)
    猜你喜欢
    • 2012-04-10
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2011-09-24
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多