Как запустить мое приложение с правами доступа к каталогу _every_? - PullRequest
1 голос
/ 24 апреля 2011

Я работаю над небольшим приложением для резервного копирования для личного использования, и как часть этого я бы хотел перебрать каждый каталог на данном диске.

Я настроил приложение для запуска с правами администратора с помощью манифеста, и хотя такие методы, как GetDirectories(), теперь могут входить в системные папки, они по-прежнему завершаются с ошибкой UnauthorizedAccessException при доступе к Documents and Settings.

Я, конечно, буду (должен) отфильтровывать системные файлы / открывать файлы и т. Д., Но пока просто создавая список, я хочу предоставить ему доступ к жесткому диску целиком , но ни к ' requireAdministrator 'или' HigherAvailable 'requiredExecutionLevel, по-видимому, делают это; как я могу дать ему доступ ко всему диску?

1 Ответ

1 голос
/ 24 апреля 2011

Вам потребуется разрешение FileIOPermissionAccess.AllAccess.Для этого вам необходимо войти в систему как администратор.Если вы не можете этого сделать, лучше всего пропустить папки.Ниже образец из похожего вопроса:

try
{
    Directory.GetFiles(path)
        .ToList()
        .ForEach(s => files.Add(s));

    Directory.GetDirectories(path)
        .ToList()
        .ForEach(s => AddFiles(s, files));
}
catch (UnauthorizedAccessException ex)
{
    // ok, so we are not allowed to dig into that directory. Move on.
}
...