Почему бы не заменить простую строку?
private string Fix(string uri)
{
var fileName = Path.GetFileNameWithoutExtension(uri);
var extension = Path.GetExtension(uri);
return uri.Replace(string.Format("{0}{1}", fileName, extension), string.Format("{0}_fixed{1}", fileName, extension));
}
Это может пойти не так, если ваше имя файла будет также встречаться в каком-то другом сегменте URI.
Другой вариант, который неУ этого недостатка есть:
private string Fix(string uri)
{
var fileName = Path.GetFileNameWithoutExtension(uri);
var extension = Path.GetExtension(uri);
var slashIndex = uri.LastIndexOf("/");
return string.Format("{0}{1}_fixed{2}", uri.Substring(0, slashIndex + 1), fileName, extension);
}