我有一个Uri
对象被传递给我的类的构造函数。
我想打开Uri
指向的文件,无论是本地的、网络的、http 等,然后将内容读入字符串。有没有一种简单的方法可以做到这一点,或者我是否必须尝试解决诸如Uri.IsFile
弄清楚如何尝试打开它之类的事情?
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
以使其也适用于这些处理程序。
最简单的方法是使用 WebClient 类:
using(WebClient client = new WebClient())
{
string contents = client.DownloadString(uri);
}