2012-01-27 6 views
9

Mi piacerebbe visualizzare la posizione del file user.config nella mia applicazione Windows Form in modo che un utente possa trovarlo facilmente.Come posso ottenere la posizione del file user.config in modo programmatico?

Capisco come viene creato il percorso grazie a: Can I control the location of .NET user settings to avoid losing settings on application upgrade?.

Tuttavia, nel caso in cui questo cambi, preferirei non dover costruire questo percorso nella mia app, soprattutto se c'è un metodo semplice per ottenere il percorso del file user.config.

risposta

20

Prova questo:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming); 

MessageBox.Show(config.FilePath); 
+2

Questo è esattamente ciò di cui ho bisogno. Qualche idea su quale sia la vera differenza tra ConfigurationUserLevel.PerUserRoamingAndLocal e ConfigurationUserLevel.PerUserRoaming? RoamindAndLocal sembrerebbe coprire entrambe le situazioni ??? –

+0

Per ottenere l'oggetto Configurazione locale che si applica all'utente corrente, impostare userLevel su PerUserRoamingAndLocal. Per ottenere l'oggetto Configurazione roaming applicabile all'utente corrente, impostare userLevel su PerUserRoaming. –

1

Utilizzare ConfigurationManager per ottenere l'oggetto Configuration. L'oggetto Configuration ha una proprietà stringa FilePath. See: Configuration-Members

4

A seconda di come viene eseguita l'applicazione, ConfigurationUserLevel.PerUserRoamingAndLocal possono essere di proprietà che stai cercando, piuttosto che ConfigurationUserLevel.PerUserRoaming;

cioè:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); 
MessageBox.Show(config.FilePath); 

Siate sicuri di avere System.Configuration nei riferimenti del vostro progetto, al fine di utilizzare questo.

Problemi correlati