Le nostre applicazioni win32 (scritte in C++) esistono da oltre 10 anni e non sono state aggiornate per seguire le "buone pratiche" in termini di conservazione dei file. L'applicazione predefinita si installa nella cartella "C: \ AppName" e conserva i file generati dall'applicazione, i file di configurazione, i file scaricati e i documenti utente salvati nelle sottocartelle di quella cartella.Dove dovrebbe il mio programma win32 mantenere i suoi file?
Presumibilmente, è "best practice" l'impostazione predefinita per l'installazione in "c: \ Programmi \ NomeApp" al giorno d'oggi. Ma se lo facciamo, dove dovremmo conservare il resto dei nostri file? A partire da Vista, la scrittura nella cartella dei file di programma è problematica e sembra che ci siano un milione di altri posti in cui è possibile inserire file diversi e io sono confuso.
C'è un riferimento da qualche parte per cosa va dove?
Modifica: Per espandere su questioni persone hanno chiesto finora:
ho familiarità con la funzione SHGetFolderPath, ma ci sono un sacco di opzioni che si possono ottenere da esso, e non riesco a trovare una risorsa che dice "Qui è esattamente ciò per cui ciascuna di queste opzioni è usata, e quando potresti volerlo usare".
Fino ad ora, abbiamo fatto la cosa "Tutti i file, inclusi i file utente salvati, sotto una cartella", ed è andata bene - ma non quando le persone vogliono installare l'app nella cartella Programmi. Per qualche ragione, la monkeying di virtualizzazione attorno a quello Vista non funziona per la nostra applicazione; se faremo comunque dei cambiamenti, potremmo fare uno sforzo per fare le cose nel modo "giusto", dal momento che non vogliamo doverlo cambiare di nuovo tra 12 mesi.
Ulteriore domanda:
Abbiamo includono alcuni documenti "campione" con la nostra applicazione, che aggiorniamo ogni tanto. È appropriato installarli in Documenti, se li sovrascriviamo ogni pochi mesi? O si presume che i miei documenti siano totalmente sicuri per gli utenti?
Se non è possibile installarli in Documenti, dove dovremmo inserirli in modo che gli utenti possano vederli facilmente?
Non è solo vista: ho il sospetto che se testate la vostra app in XP in esecuzione come _utente standard_ avrete gli stessi problemi nell'installare la configurazione esistente nella cartella dei file di programma. –