C:\ProgramData
ha impostazioni di sicurezza che impediscono all'utente standard di scrivere lì. Questo non è nuovo in Windows 8, Windows 7 era lo stesso, e anche la cartella equivalente su Vista è protetta in questo modo. Forse il tuo ambiente Windows 7 ha disabilitato il controllo dell'account utente, o forse hai protetto C:\ProgramData
o C:\ProgramData\MyProgramName
per consentire l'accesso in scrittura all'utente standard.
Ci sono un paio di approcci per l'uso di questa cartella. Alcune applicazioni scrivono lì solo durante l'installazione mentre il processo di installazione è in esecuzione elevata. Quindi l'applicazione stessa, che viene eseguita come utente standard, può leggere, ma non tenta mai di scrivere.
Un altro approccio prevede che l'installatore crei una sottocartella di C:\ProgramData
protetta per consentire l'accesso in scrittura per l'utente standard o qualsiasi altro utente/gruppo che lo sviluppatore ritenga appropriato.
fonte
2013-09-30 14:41:33
Stai sviluppando app di Windows Store o winform/wpf? – Xyroid
C++ nativo per desktop. – tmporaries
Questo può aiutare: http://stackoverflow.com/questions/16276139/difference-between-program-data-and-appdata. In sostanza (non riesco a trovare il link che ho letto solo un giorno o due fa, mi dispiace - la cronologia del browser non è stata trovata). Si ottiene l'accesso in scrittura a una cartella durante l'installazione del programma. In seguito, i tentativi di scrittura su questa cartella falliranno. Quando si tenta di scrivere dati durante l'uso effettivo del programma (come distinto dalla fase di installazione), è necessario utilizzare una cartella diversa. Sospetto che il posto migliore da usare sia menzionato nella domanda a cui mi sono collegato. – enhzflep