2012-06-19 10 views
5

Actualmente estoy trabajando en un proyecto en el que estoy añadiendo docx archivos a la carpeta de diseño en Visual Studio y luego usar esos archivos ducment para crear tipos de contenido.Obtener los archivos de la carpeta _layouts en SharePoint

El problema es que no puedo conseguir los archivos de documentos mediante programación. Utilizando el navegador web puedo obtener los archivos pero no usando web.GetFolder() ;. El código se ejecuta en un Receptor de funciones cuando se activa una función.

SPSite site = properties.Feature.Parent as SPSite; 
SPWeb web = site.RootWeb; 

SPFolder docTempFolder = web.GetFolder("_LAYOUTS/Projekt/DocumentTemplates"); 

Este código me da una colección con cero archivos.

¿Qué estoy haciendo mal?

Gracias por ayudarnos.

+0

posible duplicado de [Obtener ruta de directorio a 12 Hive mediante programación] (http://stackoverflow.com/questions/943933/get-directory-path-to-12-hive -programmáticamente) – Goyuix

Respuesta

7

SPFolder es para conseguir los objetos de documentos de SharePoint bibliotecas/listas. No puede acceder a los archivos en su sistema de archivos (la colmena 14) tratando de convertirlos como SPFolder. Tampoco puede usar SPWeb.GetFolder ya que los archivos no están cerca de su sitio web. Están en tu disco duro.

usted podría conseguir el 14 colmena utilizando GetGenericSetupPath, así que algo como esto funcionaría:

var path = SPUtility.GetGenericSetupPath(@"TEMPLATE\LAYOUTS\Projekt\DocumentTemplates"); 

Este camino que ahora podrían acceso con lectores de flujo regular, etc. System.IO.File


EDITAR: Para SharePoint 2013 y superior, el método mencionado es obsoleto, ya que en las versiones más recientes de SharePoint, las referencias a la carpeta _layouts siempre contienen SharePoint versión en la ruta (p. /_layouts/15 para SharePoint 2013 /_layouts/14 para SharePoint 2010.

El nuevo método es SPUtility.GetVersionedGenericSetupPath. El método no existe en SharePoint 2010.

+1

Sé que esto es viejo, pero la gente lo encontrará en Google. Esto ahora está obsoleto en SP2013. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.getgenericsetuppath.aspx – trgraglia

+0

Tiene razón. Agregué una edición a la publicación. –

+0

Sólido. ¡Gran actualización! – trgraglia

Cuestiones relacionadas