Is there a .NET Framework method for converting file URIs to paths with drive letters?

前端 未结 4 1568
死守一世寂寞
死守一世寂寞 2021-01-03 00:24

I was looking for something like Server.MapPath in the ASP.NET realm to convert the output of Assembly.GetExecutingAssembly().CodeBase into a file path with drive letter.

4条回答
  •  伪装坚强ぢ
    2021-01-03 00:53

    I looked for an answer a lot, and the most popular answer is using Uri.LocalPath. But System.Uri fails to give correct LocalPath if the Path contains “#”. Details are here.

    My solution is:

    private static string ConvertUriToPath(string fileName)
    {
       Uri uri = new Uri(fileName);
       return uri.LocalPath + Uri.UnescapeDataString(uri.Fragment).Replace('/', '\\');
    }
    

提交回复
热议问题