2009-06-24 20 views
7

Tengo un par de bibliotecas de documentos que son solo bibliotecas estándar, sin tipos de contenido personalizado asociados ni nada. Intento agregarles subcarpetas y en algunos casos simplemente no funciona.SharePoint SPFolder.SubFolders.Add no agrega realmente una carpeta

SPFolder parent = library.RootFolder; 
SPFolder child = parent.SubFolders.Add(subfoldername); 
parent.Update(); 
bool exists = child.Exists; // This is false 

Cuando intento agregar una subcarpeta llamada M1 Spectrum CRC w-out CMN67 E02_files a través de código que no puede agregar la carpeta, a pesar de que el método Add parece ejecutar con éxito. Cuando intento agregar una carpeta de este nombre exacto a través de la lista de SharePoint interfaz de usuario estándar basado en navegador, que consigue con éxito una carpeta añadió, pero tiene un nombre diferente:

M1 Espectro CRC w de salida CMN67 E02_files_

Tenga en cuenta el guión bajo final en la carpeta que creó SharePoint. Este es un nombre legal de carpeta de Windows y no contiene ningún caracter html-antipático. Entonces, ¿qué pasa con esto? ¿Me estoy perdiendo algo obvio?

Respuesta

8

Esto se debe a que una carpeta que termina en _files es un tipo especial creado por las aplicaciones cliente de MS Office cuando se guarda un documento como HTML. Las aplicaciones de Office guardan todos los archivos de recursos de la página web como imágenes y archivos css en esta carpeta. Pero no puede ser manipulado a través del Modelo de Objetos de SharePoint, ¡un verdadero desastre si me preguntas! La única solución para usted es NO crear carpetas que terminen con _files.

+1

Gracias ... sí, eso es un poco tonto. Hace que sea innecesariamente difícil importar informes basados ​​en html cuando los informes tienen estructuras de carpetas con nombres que terminan en archivos _files. Oh bien. ¡Al menos la razón es más clara ahora! ¡Gracias! –

+1

¡Cosas Hilarantes de MS! :) Apuesto a que esto no podría ser cierto. .. pero fue. ¡Que broma! Qué solución para implementar tal cosa, por qué no simplemente no lo permiten. –

+0

Sí, eso no es gracioso –

-1

TRY

SPWeb site = new SPSite(sharepointURL).OpenWeb(); 
site.AllowUnsafeUpdates = true; 
Cuestiones relacionadas