C# .Net实现URL绝对路径和相对路径之间互相转换

网站制作开发中,URL的绝对路径和相对路径之间互相转换,是经常需要用到的。以下是在C#.Net下一种实现二者互相转化的方法:

 

        [DllImport("shlwapi.dll", CharSet = CharSet.Auto)]
        public static extern bool PathRelativePathTo(
               [Out] StringBuilder pszPath,
               string pszFrom,
               FileAttributes dwAttrFrom,
               string pszTo,
               FileAttributes dwAttrTo
        );

        public static string ToRelativePath(string basePath, string absolutePath)
        {
            StringBuilder path = new StringBuilder(260);
            PathRelativePathTo(path, basePath, FileAttributes.Normal,
               absolutePath, FileAttributes.Normal);
            string r = path.ToString();
            if (r.StartsWith(".\\"))
            {
                return r.Substring(2);
            }
            return r;
        }

        public static string ToAbsolutePath(string basePath, string relativePath)
        {
            return new Uri(new Uri(basePath), relativePath).ToString();//如果是文件路径将/替换为\
        }

posted on 2015-10-21 15:01  东篱南山  阅读(4735)  评论(1编辑  收藏  举报

导航