Информация о томе системы: доступ запрещен - PullRequest
1 голос
/ 19 января 2011

Я написал программу, которая может искать физическое устройство на уровне сектора от начала до конца. Теперь я хочу создать процедуру, которая будет работать только с логическими файлами.

Поэтому мне нужно рекурсивно перечислять все каталоги и файлы на томе NTFS (или FAT32), используя собственный C ++. Проблема, с которой я сталкиваюсь, - это ошибка «Отказано в доступе» всякий раз, когда я сталкиваюсь с системной папкой Windows.

C:\System Volume Information and
C:\Users

- только два примера этих папок.

Я НЕ собираюсь "пропускать" эти каталоги. Наоборот, они наиболее важны для данного проекта.

Я пробовал различные варианты, которые предлагались на форумах C ++ и т. Д., И все они, похоже, либо не работают (доступ запрещен), либо быстрый ответ - «пропустить» их.

В данный момент мне интересно, нужно ли мне каким-либо образом искать физический сектор для этих папок и систематически прослеживать экстенты на уровне физического сектора для каждой?

Нужна помощь здесь, и я был бы признателен за любые идеи. Спасибо!

ПРИМЕЧАНИЕ: я не видел смысла публиковать какой-либо пример кода только потому, что я пробовал слишком много комбинаций (большинство из которых могли читать каталоги и т. Д.), Но все они не могли перемещаться по системным каталогам.

1 Ответ

0 голосов
/ 19 января 2011

Не то, чтобы я рекомендовал это, но, поскольку вы очень решительны, почему бы вам просто временно не изменить дескрипторы безопасности в этих папках с помощью SetFileSecurity , чтобы вы могли открыть дескриптор, а затем изменить его обратноснова?Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...