Есть ли простой способ открыть Uri и получить все, на что он указывает? (С#)
У меня есть объект Uri
, передаваемый конструктору моего класса.
Я хочу открыть файл, на который указывает Uri
, будь то локальный, сетевой, http, любой, и прочитать содержимое в строке. Есть ли простой способ сделать это, или мне нужно попытаться отработать такие вещи, как Uri.IsFile
, чтобы выяснить, как его открыть?
Ответы
Ответ 1
static string GetContents(Uri uri) {
using (var response = WebRequest.Create(uri).GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
return reader.ReadToEnd();
}
Он не будет работать для любого. Он работает по умолчанию file://
, http://
и https://
и ftp://
. Тем не менее, вы можете зарегистрировать настраиваемые обработчики URI с WebRequest.RegisterPrefix
, чтобы заставить его работать и для них.
Ответ 2
Самый простой способ - использовать класс WebClient:
using(WebClient client = new WebClient())
{
string contents = client.DownloadString(uri);
}