public static void Main()
Console.WriteLine("Hello World");
Console.WriteLine(NormalizePath(@"\\localhost\c$\foo", false));
private static string NormalizePath2(string path, bool fullCheck) {
private static string NormalizePath(string path, bool useAppBase)
(String.Compare( path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0)) {
if ((path[7] == '\\') || (path[7] == '/')) {
((path[8] == '\\') || (path[8] == '/')) )
throw new ArgumentException();
if ( (len > 8) && (path[7] == '\\') && (path[8] == '\\') )
System.Text.StringBuilder winPathBuilder =
new System.Text.StringBuilder(len);
for (int i = 0; i < len; i++) {
winPathBuilder.Append('\\');
winPathBuilder.Append(c);
path = winPathBuilder.ToString();
path = path.Substring(trim);
( (path[0] == '/') || (path[0] == '\\') ) &&
( (path[1] == '/') || (path[1] == '\\') ) ))
int colon = path.IndexOf(':') + 1;
( (path[colon] == '/') || (path[colon] == '\\') ) &&
( (path[colon+1] == '/') || (path[colon+1] == '\\') ))
((len == 1) || (path[1] != ':')))
String appBase = "ApplicationBaseValue";
if ((appBase == null) || (appBase.Length == 0))
throw new MemberAccessException();
StringBuilder result = new StringBuilder();
if ((path[0] == '/') || (path[0] == '\\')) {
string pathRoot = NormalizePath2(appBase, fullCheck: false);
if (pathRoot.Length == 0) {
int index = appBase.IndexOf(":/", StringComparison.Ordinal);
index = appBase.IndexOf(":\\", StringComparison.Ordinal);
int urlLen = appBase.Length;
(index < urlLen) && ((appBase[index] == '/') || (appBase[index] == '\\'));
for (; (index < urlLen) && (appBase[index] != '/') && (appBase[index] != '\\');
pathRoot = appBase.Substring(0, index);
int aLen = result.Length - 1;
if ((result[aLen] != '/') &&
(result[aLen] != '\\')) {
if (appBase.IndexOf(":/", StringComparison.Ordinal) == -1)
path = result.ToString();
path = NormalizePath2(path, fullCheck: true);