Я работаю над программным обеспечением, которое нужно скопировать файл в заданный каталог в файловой системе. Он должен работать как на ОС, поддерживающих UAC (Vista, 7), так и на XP. Чтобы обойти проблему записи в каталог, где требуется повышение UAC, приложение фактически запускает другой процесс с манифестом, в котором указано, что требуется UAC. Это генерирует приглашение, а затем копирует, когда пользователь подтверждает.C# .NET - как определить, является ли каталог доступным для записи, с или без UAC?
Из того, что я вижу, каталог может иметь три разных состояния логических разрешений - может записываться без повышения UAC, записываться с повышением UAC и не записываться.
Мой вопрос заключается в следующем: для данного каталога, как я могу достоверно определить, может ли текущий пользователь копировать (и, возможно, перезаписывать) файл в этот каталог, и, если можно, как определить, требуется ли повышение UAC ?
В XP это может быть просто, как проверить, разрешено ли разрешение «Разрешить запись», но в Vista/7 есть каталоги, где это разрешение не предоставляется, но это действие по-прежнему возможно с UAC ,
Спасибо - я только что протестировал это, и пока это говорит мне, могу ли я писать под текущим идентификатором, он возвращает false, если явно запрещен доступ к записи, а также разрешен с увеличением UAC. Мне нужно провести различие между этими двумя последними ситуациями. Я возьму это как отправную точку. – growse