在C#中的绝对path的相对path?
我有xml文件包含图像的href文件path(例如“…. \ images \ image.jpg”)。 hrefs包含相对path。 现在,我需要将hrefs提取到图像,并将其转换为文件系统中的绝对path。
我知道GetFullPath方法,但我试过了,它似乎只能从CurrentDirectory集,它似乎是C:所以我不明白我可以如何使用它。 而且,我还有包含hrefs和href相对path的文件的绝对path,因为根据绝对path计算“….”部分的数量是一件简单的事情包含文件,似乎必须有一种方法来做这个以编程方式以及。
我希望有一些简单的方法,我只是不知道! 有任何想法吗?
假设你知道真正的目录XML文件在使用Path.Combine,例如
var absolute_path = Path.Combine(directoryXmlLivesIn, "..\images\image.jpg");
如果你想找回任何..的完整path崩溃,那么你可以使用:
Path.GetFullPath((new Uri(absolute_path)).LocalPath);
string exactPath = Path.GetFullPath(yourRelativePath);
作品
这工作。
var s = Path.Combine(@"C:\some\location", @"..\other\file.txt"); s = Path.GetFullPath(s);
你有没有尝试Server.MapPath
方法。 这是一个例子
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
你可以使用Path.Combine和“base”path,然后在结果上使用GetFullPath。
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
看看Path.Combine
http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx