public static string uriToPath(Uri uri)
{
string path = uri.m_pathStr;
bool dir = uri.isDir();
int len = path.Length;
StringBuilder s = new StringBuilder(path.Length);
for (int i=0; i<len; ++i)
{
int c = path[i];
if (i == 0 && c == '/' && path.Contains(":")) continue; // skip abs
if (i == len-1 && c == '/' && dir) continue; // skip trailing slash
switch (c)
{
case '\\': break;
case '/': s.Append('\\'); break;
default: s.Append((char)c); break;
}
}
return s.ToString();
}