C # 2008 SP1
Estoy usando el siguiente código:
dt.ReadXml("%AppData%\\DateLinks.xml");
Sin embargo, recibo una excepción que apunta a la ubicación desde donde se ejecuta mi aplicación:
No se pudo encontrar una parte de la ruta 'D: \ Proyectos \ SubVersionProjects \ CatDialer \ bin \ Debug \% AppData% \ DateLinks.xml'.
Pensé que %AppData%
debería encontrar el camino relativo. Cuando voy, Start|Run|%AppData%
Windows Explorer me lleva a ese directorio.
No puedo poner la ruta completa, ya que el usuario es diferente en cada máquina cliente.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
devuelve una cadena vacía (IIS 7, VS 2011). Problema resuelto usando la solución Simon_Weaver - mapeo usandoMapPath
.La ruta es diferente si estás hablando de ASP.NET.
No pude encontrar ninguno de los valores 'SpecialFolder' que apuntaban a / App_Data para ASP.NET.
En cambio, debes hacer esto:
(Nota: no necesita la propiedad 'Actual' en un controlador MVC)
Si hay otra forma más 'abstracta' de llegar
App_Data
, me encantaría saber cómo.fuente
HostingEnvironment.MapPath(@"~/App_Data")
es mejor y funciona en contextos MVC / WebAPI y WCF donde no hay HttpContext, pero no estoy seguro sobre core 'La MEJOR manera de usar el directorio AppData, es usar el
Environment.ExpandEnvironmentVariable
método.Razones:
Ejemplos:
Recuerde que algunos usuarios escriben
%AppData%
, algunos%appdata%
y otros%APpData%
. No desea terminar con:Si la variable de entorno no está configurada, no es su culpa (además de cuando ES ). Por lo general, no les digo a las personas que no reinventen la rueda, pero después de que fui por el otro lado y me di cuenta de que era una mala idea.
fuente
path
variable :)Environment.ExpandEnvironmentVariable
es mejor cuando simplemente necesita expandirse, independientemente de qué entornos puedan estar en la cadena de ruta.También puedes usar
para expandir la
%AppData%
variable.fuente
En .net2.0 puedes usar la variable
Application.UserAppDataPath
fuente
No creo que poner% AppData% en una cadena como esa funcione.
tratar
fuente
Solo quería compartir otra forma de acceder a la carpeta 'App_Data' en mi aplicación mvc en caso de que alguien lo necesite.
fuente
Esto está funcionando para mí en una aplicación de consola:
fuente
Para ASP.NET, la
Load User Profile
configuración debe establecerse en el grupo de aplicaciones, pero eso no es suficiente. Hay una configuración oculta nombradasetProfileEnvironment
en\Windows\System32\inetsrv\Config\applicationHost.config
, que por alguna razón está desactivada de manera predeterminada, en lugar de activarse como se describe en la documentación . Puede cambiar el valor predeterminado o establecerlo en su grupo de aplicaciones. Todos los métodos de laEnvironment
clase devolverán los valores adecuados.fuente