2012-01-27 33 views
9

Me gustaría mostrar la ubicación del archivo user.config en mi aplicación de formularios de Windows para que el usuario pueda encontrarla fácilmente.¿Cómo obtengo la ubicación del archivo user.config programáticamente?

Entiendo cómo se crea la ruta gracias a: Can I control the location of .NET user settings to avoid losing settings on application upgrade?.

Sin embargo, en caso de que esto cambie, preferiría no tener que construir la ruta en mi aplicación, especialmente si hay un método fácil para obtener la ubicación del archivo user.config.

Respuesta

20

Prueba esto:

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

MessageBox.Show(config.FilePath); 
+2

Eso es exactamente lo que necesito. ¿Alguna idea de cuál es la diferencia real entre ConfigurationUserLevel.PerUserRoamingAndLocal y ConfigurationUserLevel.PerUserRoaming? ¿RoamindAndLocal parece cubrir ambas situaciones? –

+0

Para obtener el objeto de configuración local que se aplica al usuario actual, establezca userLevel en PerUserRoamingAndLocal. Para obtener el objeto de configuración itinerante que se aplica al usuario actual, configure userLevel en PerUserRoaming. –

1

Utilice ConfigurationManager para obtener Configuration -objeto. El objeto Configuration tiene una propiedad de cadena FilePath. Ver: Configuration-Members

4

Dependiendo de cómo se ejecuta la aplicación, ConfigurationUserLevel.PerUserRoamingAndLocal pueden ser la propiedad que está buscando en lugar de ConfigurationUserLevel.PerUserRoaming;

es decir:

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

Asegúrese de tener System.Configuration en las referencias de su proyecto con el fin de utilizar este.

Cuestiones relacionadas