sábado, 13 de agosto de 2011

Leer archivos remotos en C#

Creando un sitio en ASP .NET me he enfrentado a la necesidad de leer archivos remotos, es decir, ubicados en un servidor diferente al que ejecuta el aplicativo. Esto para cargar parte de él en un UpdatePanel, que es un contenedor que se actualiza de forma asíncrona. Leyendo y probando, encontré los siguientes métodos según el origen y tipo del archivo:

Local
El más simple, se lee como cualquier archivo local en C#:

using System.IO;
...
protected string LeerArchivoLocal(string rutaLocal)
{
 StreamReader sr = new StreamReader(rutaLocal);
 string linea = "";
 string res = "";
 while (linea != null)
 {
  linea = sr.ReadLine();
  res += linea + "\n";
 }
 sr.Close();
 return res;
}

Xml remoto
Acceder a un XML remotamente es demasiado fácil:

using System.Xml;
...
protected XmlDocument LeerXmlRemoto(string url)
{
 XmlDocument doc = new XmlDocument();
 doc.Load(url);
 return doc;
}

Otro archivo remoto
Realmente este era el que necesitaba: leer cualquier tipo de archivo ubicado remotamente. En Stackoverflow encontré la respuesta:


using System.Net;
...
protected string LeerArchivoDeTextoRemoto(string url)
{
 WebClient wc = new WebClient();
 return wc.DownloadString(url);
}

DownloadString es el método de lectura como String. La clase tiene además otros métodos que permite leer el archivo como un arreglo de bytes o descargarlo a una ruta local.

1 comentario:

  1. Actualizar el contenido de una página aspx en tiempo de ejecución.

    ResponderEliminar

Si deseas extender esta entrada, por favor hazlo