Sto lavorando a un software che deve copiare un file in una determinata directory sul filesystem. Deve funzionare su entrambi i SO compatibili con UAC (Vista, 7) e XP. Per aggirare il problema della scrittura in una directory in cui è richiesta l'elevazione UAC, l'app avvia effettivamente un altro processo con un manifest che indica che è necessario UAC. Questo genera il prompt e quindi esegue la copia quando l'utente conferma.C# .NET - come determinare se la directory è scrivibile, con o senza UAC?
Da quello che posso vedere, una directory può avere tre diversi stati di autorizzazione logica, scrivibili senza elevazione UAC, scrivibili con elevazione UAC e non scrivibili.
La mia domanda è questa: per una determinata directory, come posso determinare in modo affidabile se l'utente corrente può copiare (e potenzialmente sovrascrivere) un file in quella directory, e se posso, come posso determinare se è richiesta l'elevazione UAC ?
Su XP, questo potrebbe essere semplice come controllare se è concessa l'autorizzazione "Consenti scrittura", ma su Vista/7, ci sono directory in cui questa autorizzazione non è concessa, ma questa azione è ancora possibile con Controllo dell'account utente .
Grazie - Ho appena provato questo, e mentre questo mi dice se posso scrivere sotto l'identità corrente, restituisce false se entrambi gli accessi in scrittura sono esplicitamente negati e se è permesso con un elevazione UAC. Devo differenziare tra queste ultime due situazioni. Lo prenderò come punto di partenza però. – growse