the net combine asp c# relative-path absolute-path

net - path combine c#



Ruta relativa a la ruta absoluta en C#? (7)

Tengo archivos xml que contienen rutas de archivos href a imágenes (por ejemplo, ".... / images / image.jpg"). Los hrefs contienen rutas relativas. Ahora, necesito extraer los hrefs a las imágenes y convertirlas en rutas absolutas en el sistema de archivos.

Sé sobre el método GetFullPath, pero lo probé y parece que solo funciona desde el conjunto CurrentDirectory, que parece ser C: así que no veo cómo podría usar eso. Y aún así, tengo la ruta absoluta del archivo que contiene hrefs y la ruta relativa href, por lo que es una tarea simple para mí contar el número de partes ".... /" basadas en la ruta absoluta El archivo que contiene, parece que debe haber una manera de hacer esto también mediante programación.

¡Espero que haya un método simple que no conozco! ¿Algunas ideas?


¿Has probado el método Server.MapPath ? Aquí hay un ejemplo

string relative_path = "/Content/img/Upload/Reports/59/44A0446_59-1.jpg"; string absolute_path = Server.MapPath(relative_path); //will be c:/users/...../Content/img/Upload/Reports/59/44A0446_59-1.jpg



Esto funcionó para mí.

//used in an ASP.NET MVC app private const string BatchFilePath = "/MyBatchFileDirectory/Mybatchfiles.bat"; var batchFile = HttpContext.Current.Server.MapPath(BatchFilePath);


Esto funciono

var s = Path.Combine(@"C:/some/location", @"../other/file.txt"); s = Path.GetFullPath(s);


Puede usar Path.Combine con la ruta "base", luego GetFullPath en los resultados.

string absPathContainingHrefs = GetAbsolutePath(); // Get the "base" path string fullPath = Path.Combine(absPathContainingHrefs, @"../../images/image.jpg"); fullPath = Path.GetFullPath(fullPath); // Will turn the above into a proper abs path


Suponiendo que conoce el directorio real en el que vive el archivo XML, utilice Path.Combine, por ejemplo,

var absolute_path = Path.Combine(directoryXmlLivesIn, "../images/image.jpg");

Si desea recuperar la ruta completa con cualquier .. ''colapsado, puede utilizar:

Path.GetFullPath((new Uri(absolute_path)).LocalPath);


string exactPath = Path.GetFullPath(yourRelativePath);

trabajos