2009-06-24 6 views
7

Ich habe ein paar Dokumentbibliotheken, die nur Standardbibliotheken sind - keine zugeordneten benutzerdefinierten Inhaltstypen oder irgendetwas. Ich versuche, ihnen Unterordner hinzuzufügen, und in einigen Fällen funktioniert es einfach nicht.SharePoint SPFolder.SubFolders.Add nicht tatsächlich einen Ordner hinzufügen

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

Wenn ich versuche, einen Unterordner M1 Spectrum CRC w-out CMN67 E02_files über Code aufgerufen hinzufügen nicht die Ordner hinzufügen, auch wenn die Add Methode erfolgreich ausgeführt werden scheint. Wenn ich versuche, einen Ordner mit genau diesem Namen über die Standard-Browser-basierte Sharepoint-Liste UI hinzuzufügen, erhalte ich erfolgreich einen Ordner hinzugefügt, aber es hat einen anderen Namen:

M1 Spectrum CRC w-out CMN67 E02_files_

Beachten Sie den abschließenden Unterstrich in dem von SharePoint erstellten Ordner. Dies ist ein zulässiger Windows-Ordnername und enthält keine HTML-unfreundlichen Zeichen. Also, was ist los damit? Fehle ich etwas Offensichtliches?

Antwort

8

Dies liegt daran, dass ein Ordner, der mit _files endet, eine besondere Art ist, die von den MS Office-Client-Anwendungen erstellt wird, wenn ein Dokument als HTML gespeichert wird. Die Office-Apps speichert alle Ressourcen-Dateien der Webseite wie Bilder und CSS-Dateien in diesem Ordner. Aber es kann nicht durch das SharePoint-Objektmodell manipuliert werden - ein echtes Durcheinander, wenn Sie mich fragen! Die einzige Lösung für Sie besteht darin, keine Ordner zu erstellen, die mit _files enden.

+1

Dank ... ja, das ist ein wenig doof ist. Es macht den Import von HTML-basierten Berichten unnötig schwierig, wenn die Berichte Ordnerstrukturen mit Namen haben, die in _files enden. Naja. Zumindest ist der Grund jetzt klarer! Vielen Dank! –

+1

Hilarious MS Zeug! :) Ich wette ich könnte das nicht wahr sein. .. aber es war. Was für ein Witz! Was für ein Fix, um so etwas zu implementieren - warum lassen sie es einfach nicht zu? –

+0

Ja, das ist nicht lustig –

-1

TRY

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