2009-06-24 7 views
7

私は、標準ライブラリだけのドキュメントライブラリをいくつか持っています。関連するカスタムコンテンツタイプなどはありません。サブフォルダを追加しようとしていますが、場合によっては機能しません。SharePoint SPFolder.SubFolders.Addは実際にフォルダを追加しません。

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

私はAddメソッドが正常に実行するために見えても、それはフォルダを追加するために失敗したコードを経由してM1 Spectrum CRC w-out CMN67 E02_filesという名前のサブフォルダを追加してみてください。私は、標準的なブラウザベースのSharePointリストのUIを介してこの正確な名前のフォルダを追加しようとすると、私は正常にフォルダが追加されますが、それは別の名前があります。

M1スペクトラムCRCワットアウトCMN67 E02_files_

SharePointが作成したフォルダの末尾のアンダースコアに注意してください。これは合法的なWindowsフォルダ名であり、htmlにふさわしくない文字は含まれていません。だから、これはどうしたの?私は明白な何かを欠いていますか

答えて

8

これは、_filesで終わるフォルダが、ドキュメントをHTMLとして保存するときにMS Officeクライアントアプリケーションによって作成される特殊な種類であるためです。 Officeアプリケーションは、イメージやCSSファイルなどのすべてのWebページリソースファイルをこのフォルダに保存します。しかし、SharePoint Object Modelを通して操作することはできません。あなたが私に尋ねると本当に混乱します!解決策は、_filesで終わるフォルダを作成しないことです。

+1

おかげで...。レポートに_filesで終わる名前のフォルダ構造がある場合、HTMLベースのレポートをインポートするのが不必要に難しくなります。しかたがない。少なくとも今の理由は明らかです!ありがとう! –

+1

陽気なMSのもの!私は自分自身を賭けて、これは真実ではないかもしれない。 ..それがあった。なんて冗談だ!そのようなことを実装するための修正点 - なぜ単に代わりに許可しないのですか? –

+0

これは面白くない –

-1

TRYええ、それは少し間抜けだ

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