Pages

Thursday, January 13, 2011

Cargar archivos en Sharepoint con la fecha "Modified" que deseemos

¿A quien no le ha pasado necesitar subir un reporte o informe con fecha del mes pasado?


En sharepoint la fecha de Modificado es de solo lectura, pero podemos cambiarla utilizando unas pocas lineas de código c#.


El siguiente código sube un archivo a una biblioteca de documentos, dentro de una subcarpeta, con la fecha y comentario deseado.



static void cargar(string archivo,string destino, string comentario,string fecha)
        {
            string ruta = "C:\\ubicacion\\archivos\\";
            String fileToUpload = ruta + archivo;
            String sharePointSite = "http://misitio";
            String documentLibraryName = "MiBiblioteca";
            String subcarpeta = "UnaSubcarpeta";
            Guid id;
            using (SPSite oSite = new SPSite(sharePointSite))
            {
                using (SPWeb oWeb = oSite.OpenWeb())
                {
                    if (System.IO.File.Exists(fileToUpload))
                    {
                        SPFolder myLibrary = oWeb.Folders[documentLibraryName];
                                               
                        String fileName = System.IO.Path.GetFileName(fileToUpload);
                        FileStream fileStream = File.OpenRead(fileToUpload);
                        
                        Hashtable MetaDataTable = new Hashtable();
                        MetaDataTable.Add("Comments", comentario);
                           
                        
                        SPFile spfile = myLibrary.SubFolders[documentLibraryName + "/" + subcarpeta].Files.Add(destino, fileStream,true,comentario,true);
                        


                        id = spfile.Item.UniqueId;
                        myLibrary.Update();
                        
                        
                    }
                    else
                    {
                        throw new FileNotFoundException("File not found.", fileToUpload);
                    }
                }
            }
            cambiarFecha(id, fecha);
        }










  private static void cambiarFecha (Guid id, string fecha) 
        {
            SPSite site = new SPSite("http://misitio");
            SPWeb myWeb = site.OpenWeb();


            SPList list = myWeb.Lists["MiBiblioteca"];
            SPListItem doc = list.Items[id];
            doc["Modified"] = DateTime.Parse(fecha);
            doc.UpdateOverwriteVersion();
            myWeb.Close();
            site.Close();


        }




        private static string leerArchivo(string camino)
        {
            StreamReader streamReader = new StreamReader(camino, System.Text.Encoding.Default);


            string texto = streamReader.ReadToEnd();
            streamReader.Close();
            return texto;


        }
        private static string[] obtenerRutas(string dir, string tipo)
        {
            string[] filePaths = Directory.GetFiles(@dir, tipo, SearchOption.AllDirectories);
            return filePaths;
        }








No comments:

Post a Comment