Я думаю, вы обнаружите, что ваша проблема в том, что Application.GetContentStream предназначен для потока ресурсов для файла данных content , который расположен в указанном Uri. То есть развернут вместе с исполняемой сборкой.
Если вы посмотрите на: http://msdn.microsoft.com/en-us/library/aa970494(VS.90).aspx#Site_of_Origin_Files
Вы должны обнаружить, что синтаксис file: ///, как указано выше, является правильным ... Но если вы собираетесь открыть их, вам, вероятно, понадобится какой-то переключатель, чтобы выяснить, как получить поток:
FileInfo fileToSave;
if (!existingFile.IsFile)
throw new ArgumentException("Input URI must represent a local file path", "existingFile");
fileToSave = new FileInfo(existingFile.LocalPath);
return fileToSave.Open(/* Args based on your needs */)
И аналогично, если это веб-URI:
if (!existingFile.Scheme.StartsWith("http"))
throw new ArgumentException("Input URI must represent a remote URL path", "existingFile");
// Do a WebRequest.Create call and attempt download... (Perhaps to MemoryStream for future use)
Надеюсь, это поможет.
Эндрю.