Hoy estaba intentando leer los attachments (adjuntos) de un elemento de una lista de SharePoint.
Cada SPLitsItem tiene una colección llamada SPAttachmentCollection, donde puedes saber si el ítem tiene attachments y obtener campos sobre esa colección. En un principio parecería lógico que un SPAttachmentCollection es una colección de algún objeto como SPAttachment… pero no! Simplemente es un array de strings!!
De hecho, no existe un objeto SPAttachment. Para acceder al contenido de esa colección deberíais hacer algo así:
foreach (string fileName in item.Attachments)
{
SPFile file = item.ParentList.ParentWeb.GetFile(item.Attachments.UrlPrefix + fileName);
}
Otra opción sería acceder al folder donde se encuentran esos files y recorrerlos, pero la versión de arriba parece más fácil:
SPFolder folder = web.Folders["Lists"].SubFolders[list.Title].SubFolders["Attachments"].SubFolders[listitem.ID.ToString()];
foreach (SPFile file in folder.Files)
{
// Something useful here
}