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 |
这是有效的。
1 2 | var s = Path.Combine(@"C:\some\location", @"..\other\file.txt"); s = Path.GetFullPath(s); |
你试过
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); |
看一下