8

我有一个Uri对象被传递给我的类的构造函数。

我想打开Uri指向的文件,无论是本地的、网络的、http 等,然后将内容读入字符串。有没有一种简单的方法可以做到这一点,或者我是否必须尝试解决诸如Uri.IsFile弄清楚如何尝试打开它之类的事情?

4

2 回答 2

11
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以使其也适用于这些处理程序。

于 2009-07-01T10:42:11.943 回答
5

最简单的方法是使用 WebClient 类:

using(WebClient client = new WebClient())
{
    string contents = client.DownloadString(uri);
}
于 2009-07-01T10:57:14.440 回答