Posterior a investigar en diferentes repositorios y páginas webs al terminar encontramos la resolución que te enseñamos pronto.
Solución:
System.IO.File
funcionará si proporciona una ruta absoluta o una ruta relativa. Una ruta relativa no será relativa a la carpeta raíz HTML, pero la directorio de trabajo actual. El directorio de trabajo actual será un valor como C:Program Files (x86)IIS Express
.
los ~
El carácter al comienzo de la ruta del archivo solo se interpreta como parte del contexto ASP.NET actual, que el File
los métodos no saben nada acerca de.
El método para ayudarlo aquí es HttpServerUtility.MapPath
Si está en un método de controlador, puede invocar este método en el objeto HttpContext.Server
de lo contrario (por ejemplo, en una Vista) puede usar HttpContext.Current.Server
.
var relativePath = "~/files/downloads/" + fileCode + ".pdf";
var absolutePath = HttpContext.Server.MapPath(relativePath);
if(System.IO.File.Exists(absolutePath)) ....
Exists() puede regresar false si la aplicación no tiene suficientes permisos para acceder al archivo. Por lo tanto, debe otorgarlos a appPool en carpetas y archivos específicos.
Aquí está mi solución:
@
var profileImg = "/Images/" + User.Identity.GetUserId() + ".jpg";
var absolutePath = HttpContext.Current.Server.MapPath(profileImg);
if (System.IO.File.Exists(absolutePath))
else
Te invitamos a añadir valor a nuestra información dando tu experiencia en las interpretaciones.