Следующий код не работает должным образом, если в имени файла есть пробел. Uri.AbsolutePath ускользает строку, в результате чего отображенной пути на диске также включая ненужные экранированные символы:Работа с экранированными пространствами при использовании Server.MapPath в URI
var uri = new Uri("http://localhost/my file.txt");
var pathOnDisk = HttpContext.Current.Server.MapPath(uri.AbsolutePath);
// Resulting incorrectly in "C:\MyWebsite\my%20file.txt"
без отводом вокруг, и с использованием официального решения не string.replace, как можно получить неэкранированный путь от uri или, альтернативно, сопоставить путь к диску без использования экранированных символов?
вы должны найти подстроку, где пространство и заменить его String.Empty – SuncoastOwner