Following method resolves some weaknesses in the static method "Path.Combine" found in the System.IO namespace.
public static string PathCombine(string rootPath, string relativePath)
{
Debug.Assert(rootPath != null);
Debug.Assert(relativePath != null);
string res = string.Empty;
if (rootPath.EndsWith(":"))
{
rootPath += @"\";
}
// remove initial single '\' or '/' from relative path
if (relativePath.StartsWith(@"\") ||
relativePath.StartsWith(@"/"))
{
if (! (relativePath.StartsWith(@"\\") ||
relativePath.StartsWith(@"//")))
{
relativePath = relativePath.Substring(1);
}
}
res = Path.Combine(rootPath, relativePath);
res = res.Replace('/', '\\'); // replace '/' with '\'
return res;
}
No comments:
Post a Comment