Skip Ribbon Commands
Skip to main content

Como copiar documentos de una librería a un sitio local
Codigo

Copiar documentos desde una librería a un sitio local en el computador del usuario no es difícil; mire como hacerlo con código.
Autor: Gustavo

La siguiente función copia un documento desde una librería al Escritorio de Windows.

  public void CopiarDocumento()
  {
     try
     {
        string strDesktop = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        string DocumentoDestino = strDesktop + "\\MiDocumento.doc";
        string DocumentoFuente = "http://[servidor]/sites/[sitio]/[libreria]/MiDocumento.doc";

        System.Net.WebClient objWebClient = new System.Net.WebClient();
        objWebClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
        objWebClient.DownloadFile(DocumentoFuente, DocumentoDestino);

        //Todo ha ido bien
     }
     catch(Exception ex)
     {
        //Nada ha ido bien
     }
  }

Los nombres del DocumentoDestino y DocumentoFuente están fijos en el código, pero no es difícil de hacerlo dinámicamente

La función se puede cambiar para copiar todos los documentos de la librería, utilizando un lazo que examina cada documento de la librería, extrae su nombre para utilizarlo en el sitio de destino y luego hace la copia.

La autenticación esta limitada al usuario que esta usando Internet Explorer (por el uso de las credenciales que IE tiene en ese momento), pero utilizando un Impersonador se puede hacer copias de documentos sin tener restricciones.

Nota: Puede ocurrir que el archivo sea guardado localmente en el servidor, y no en el computador local del usuario. Tako a sugerido en el Foro lo siguiente: "... si quieres bajar algo en el cliente simplemente haces un Page.Response.Redirect(rutaOrigen) y la página Web que está viendo el cliente se redirija a tu url. Otra opción es generar el código Javascript para que haga, por ejemplo, un window.open(url) de forma que se le abra una ventanita nueva."