C'è un modo semplice per aprire un Uri e ottenere ciò a cui punta? (C #)

StackOverflow https://stackoverflow.com/questions/1068420

  •  21-08-2019
  •  | 
  •  

Domanda

Ho un Uri oggetto che viene passato a un costruttore della mia classe.

Voglio aprire il file i Uri.IsFile punti, che si tratti di locale, di rete, http, qualunque sia, e leggere il contenuto in una stringa. C'è un modo semplice di fare questo, o devo cercare di lavorare fuori le cose come <=> di capire come per cercare di aprirlo?

È stato utile?

Soluzione

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();
}

Non funzionerà per qualsiasi . Si lavora per file://, http:// e https:// e ftp:// per impostazione predefinita. Tuttavia, è possibile registrare i gestori di URI personalizzato con WebRequest.RegisterPrefix per farlo funzionare per quelli pure.

Altri suggerimenti

Il modo più semplice è quello di utilizzare la classe WebClient:

using(WebClient client = new WebClient())
{
    string contents = client.DownloadString(uri);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top