2013-03-12 16 views
7

Sommario: Diversi utenti utilizzeranno la mia applicazione su una macchina specifica. Voglio che l'applicazione memorizzi i suoi dati in un singolo file comune su questa macchina indipendentemente da quale utente sta eseguendo l'applicazione.Utilizzare 'ApplicationData' o 'LocalApplicationData' per memorizzare un file comune a tutti gli utenti?

per ottenere quello che voglio, mi chiedo se questa domanda potrebbe essere rilevante: Difference between 'SpecialFolder.LocalApplicationData' and 'SpecialFolder.ApplicationData'?

Da questa domanda e le sue risposte sembra che:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 

è specifico per la macchina. Alcune delle informazioni che ho trovato su googling lo confermano. Tuttavia, ho anche trovato informazioni che dicono che LocalApplicationData è specifico dell'utente.

Quindi, che è vero? E qualcuno può dirmi cosa si intende realmente per "utente specifico" e "macchina specifica"?

Ecco quello che sto pensando: Se LocalApplicationData è specifica macchina, quindi posso usare che come base per avere la mia applicazione salvare tutti i dati in un unico file comune per tutti gli utenti.

sto anche chiedendo circa la cartella ApplicationData:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

Dovrei invece utilizzare ApplicationData per ottenere ciò che voglio?

+1

in caso di dubbio [leggi la documentazione] (http://msdn.microsoft.com/en-us/library/system.environment.specialfolder. aspx). CommonApplicationData. –

+1

@RaymondChen perché non è questa una risposta, visto che è la risposta? – pixelbadger

+1

Probabilmente becau se non è la risposta, c: \ programdata non è scrivibile. L'installazione predefinita di Windows non fornisce una cartella a cui tutti gli utenti possono scrivere. Se questo è importante, dovrai crearne uno e dare a tutti l'accesso in scrittura. Probabilmente scoprirai, più avanti, che occuparsi di un utente rovinare i dati di un altro utente e non avere un backup può essere un bel problema. Ecco perché esistono i file server. –

risposta

5

Entrambi ApplicationData e LocalApplicationData sono accessibili solo all'utente attualmente connesso. La differenza tra questi due è che ApplicationData viene replicato e sincronizzato con altri dispositivi che l'utente sta utilizzando in un ambiente aziendale. Sarebbe usato per memorizzare le preferenze di un utente.

Come suggerito Raymond (see docs), si sta andando a voler utilizzare una cartella diversa. CommonDocuments sarebbe una buona opzione per i documenti da condividere tra tutti gli utenti. CommonMusic se stai immagazzinare musica e così via.

Se hai intenzione di memorizzare i file specifici dell'applicazione utilizzare Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

+2

Per dirla in breve: entrambi sono specifici per l'utente e 'LocalApplicationData' è anche specifico per la macchina. – MicroVirus

Problemi correlati