Pracuję nad oprogramowaniem, które musi skopiować plik do podanego katalogu w systemie plików. Musi działać zarówno w systemach operacyjnych UAC-owych (Vista, 7), jak i XP. Aby obejść problem pisania do katalogu, w którym wymagane jest podniesienie UAC, aplikacja faktycznie uruchamia inny proces z manifestem, który stwierdza, że ZAK jest wymagany. Spowoduje to wygenerowanie monitu, a następnie wykonanie kopii po potwierdzeniu przez użytkownika.C# .NET - jak ustalić, czy katalog jest zapisywalny, z UAC lub bez niego?
Z tego co widzę, katalog może mieć trzy różne stany uprawnień logicznych - możliwe do zapisania bez podniesienia UAC, możliwe do zapisania z podniesieniem UAC i niepisywalne.
Moje pytanie brzmi: w przypadku danego katalogu, w jaki sposób można wiarygodnie ustalić, czy bieżący użytkownik może skopiować (i potencjalnie nadpisać) plik do tego katalogu, a jeśli mogę, w jaki sposób określić, czy wymagane jest podniesienie UAC ?
W przypadku XP może to być tak proste, jak sprawdzenie, czy zezwolenie "Zezwalaj na zapisywanie" jest przyznane, ale w systemie Vista/7 istnieją katalogi, w których to uprawnienie nie jest przyznane, ale ta akcja jest nadal możliwa w przypadku UAC .
Dzięki - Właśnie przetestowałem to i podczas gdy to mówi mi, czy mogę pisać pod bieżącą tożsamością, zwraca ono wartość false, jeśli zarówno dostęp do zapisu jest jawnie zabroniony, jak i jeśli jest dozwolone z podniesieniem UAC. Muszę rozróżnić te dwie ostatnie sytuacje. Biorę to jednak za punkt wyjścia. – growse