C#中绝对路径的相对路径?

Relative path to absolute path in C#?

我有XML文件,其中包含指向图像的href文件路径(例如"…imagesimage.jpg")。hrefs包含相对路径。现在,我需要将href提取到图像中,并将其转换为文件系统中的绝对路径。

我知道getfullpath方法,但是我尝试过了,它似乎只在currentdirectory集中起作用,它似乎是c:所以我不知道如何使用它。而且,我还有包含href的文件的绝对路径和href相对路径,所以对于我来说,基于包含文件的绝对路径倒数"…"部分的数量是一项简单的任务,似乎也必须有一种方法以编程的方式来实现这一点。

我希望有一个简单的方法我只是不知道!有什么想法吗?


1
string exactPath = Path.GetFullPath(yourRelativePath);

作品


假设您知道实际的目录,那么XML文件就存在于use path.combine中。

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

如果要返回折叠了任何..的完整路径,则可以使用:

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


这是有效的。

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

你试过Server.MapPath方法吗?下面是一个例子

1
2
3
4
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
eports\59\44A0446_59-1.jpg

这是将相对路径转换为绝对路径的最佳方法!

1
string absolutePath = System.IO.Path.GetFullPath(relativePath);

你可以使用路径。结合"基本"路径,然后在结果上获取完整路径。

1
2
3
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


这对我有用。

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

看一下Path.Combine。http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx