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