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