トップ回答者
ドキュメントライブラリの「タイトル」へのプログラムからの設定

質問
-
こんにちは。
WSS3.0 にてカスタム WebApplication を追加し、ドキュメントライブラリに対して、ファイルおよび付帯プロパティをアップロードする処理を開発しています。
ほぼうまく動作しているのですが、ただ一点、あらかじめ用意されている(と思われる)「タイトル」プロパティに対して、入力値を設定することができません。
対象のドキュメントライブラリに、手動で追加した「補足説明」という列に対しては、入力値を設定することができています。
コードは、以下のような感じになります。
Dim targetSite As SPWeb = SPContext.Current.Site.AllWebs(SITE_NAME)
targetSite.AllowUnsafeUpdates = TrueDim targetFolder As SPFolder = targetSite.GetFolder(FOLDER_NAME)
Dim prop As New Hashtable
prop.Add("タイトル", title) '←★この値は反映されない
prop.Add("補足説明", notes) '←★この値は反映されるDim file As Byte() = GetFile(filename)
Dim spf As SPFile = targetFolder.Files.Add(filename, file, prop, True)
'spf.Title = title '←★Title プロパティが ReadOnly なので修正できない。targetFolder.Files.Add の戻り値の SPFile に Title プロパティがありますが、ReadOnly で設定できません。
また、以下のコードを試してみましたが、成果がありませんでした。
prop.Add("Title", title)
prop.Add("Caption", title)targetFolder.Files.Add メソッドに対して Title を設定するオーバーロードも見つかりません。
「タイトル」プロパティに対して、入力値を設定する方法や情報をご存知の方、ご教授ください。
どうぞよろしくお願いいたします。
■開発環境
Windows Server 2003 Standard SP2
Microsoft Office SharePoint Server 2007(MOSS) 評価版
VisualStudio2005 SP1(VB.NET)
2008年11月12日 3:16
回答
-
すでに不要かもしれませんが、APIを調べたところ
SPFIle.Itemで、ファイルに対応するリストアイテムが取得できるようです。
「SPFileクラス->SPFileプロパティ->Itemプロパティ」
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spfile.item.aspx
なので
SPFile file = ...;
file.Item[SPBuiltInFieldId.Title] = "タイトル";
file.Item.Update();
で、ドキュメントライブラリに表示されているアイテムのタイトルが変更できそうです。
#申し訳ありませんが、動作は未確認です。
2008年12月2日 23:47
すべての返信
-
nakayama.hiroshi さま
ご返信ありがとうございました。
試してみたのですが、うまくいきませんでした。
prop.Add(SPBuiltInFieldId.Title, title)
→エラーは出ないが、ファイルが反映されない
prop.Add(SPBuiltInFieldId.Title.ToString, title)
→ファイルは登録されるが、タイトルには反映されない
尚、試しに、
prop.Add("補足説明", SPBuiltInFieldId.Title.ToString)
としてみると、GUIDが文字列として入ることが確認できました。
ただ、重要なヒントを頂いたような気がいたしますので、
また折をみて試してみたいと思います。
#実は顧客と調整しまして、結局独自列を作成する事になりました。
ありがとうございました。ひとまずお礼まで。
2008年11月28日 3:11 -
すでに不要かもしれませんが、APIを調べたところ
SPFIle.Itemで、ファイルに対応するリストアイテムが取得できるようです。
「SPFileクラス->SPFileプロパティ->Itemプロパティ」
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spfile.item.aspx
なので
SPFile file = ...;
file.Item[SPBuiltInFieldId.Title] = "タイトル";
file.Item.Update();
で、ドキュメントライブラリに表示されているアイテムのタイトルが変更できそうです。
#申し訳ありませんが、動作は未確認です。
2008年12月2日 23:47