我一直跑到这一问题和谷歌似乎从未明白想做什么, 我想我会写这下.
我一直在做很多在最后一周或两个调试的事件接收器. 二被定义对文档库. 在文档库中的个别项目密切应用到其父文件夹. 所以, 我总是该项目的文件夹用于各种操作. 在调试时, 我需要更新文件夹为我知道其 ID 的特定项的元数据.
这里是一个小的控制台应用程序 (在服务器场中的服务器上运行而设计) 采用两个参数的: 要分配给字段的项和值的 ID, "审批状态". 它硬编码的东西很多并没有任何错误检查.
代码查找一个硬编码的站点, 获取一个硬编码的文档库,然后查找表示的项目. 它发现该项目的父文件夹中,然后赋值状态.
在这里对我来说重要的教训是 SPItem 不让您可以访问该文件夹. 您需要使用 SPListItem.File.
如果任何人在乎愿意批判或建议获取某一项的文件夹的更好方法, 请留下评论.
<代码>
使用 系统; 使用 System.Collections.Generic; 使用 System.Text; 使用 Microsoft.SharePoint; 使用 System.Collections; 命名空间 Conchango { /// <摘要> /// </摘要> 类 ManualFolderUpdate { 静态 无效 主(字符串[] args) { 字符串 msh = "ManualFolderUpdate (v1.0): "; // msh ="邮件头" 控制台.WriteLine(msh + "启动. 我上次修改时间 08/8/4。"); 字符串 url = http://localhost/xyzzy; 使用 (SPSite oSPSite = 新增功能 SPSite(url)) { 使用 (SPWeb oSPWeb = oSPSite.OpenWeb()) { 写入 文档库 = oSPWeb.Lists["文档"]; 控制台.WriteLine(msh + "有的文档库。"); 控制台.WriteLine(msh + "Doc lib 项目计数: [" + docLib.ItemCount + "]."); int 文件夹 Id = 0; 字符串 NewStatus = "xyzzy"; 文件夹 Id = 系统.转换.ToInt32(args[0].ToString()); 控制台.WriteLine("寻求项的文件夹: [" + 文件夹 Id + "]."); SPListItem 李 = docLib.GetItemById(文件夹 Id); SPFolder thisItemFolder = 李。File.ParentFolder; 控制台.WriteLine(msh + "有的父文件夹。"); NewStatus = args[1].ToString(); 控制台.WriteLine("状态设置为 [" + NewStatus + "]."); 控制台.WriteLine("按回车键提交的更新或 CTRL C 中止。"); 控制台.ReadLine(); thisItemFolder.Item["审批状态"] = NewStatus; thisItemFolder.Item.Update(); 控制台.WriteLine(msh + "完成更新文件夹. 退出。"); } // 使用 SPWeb } // 使用 SPSite 控制台.WriteLine(msh + "已完成。"); } // 主 } // 类 foldersync } // 命名空间
</代码>
</结束>
Technorati 标签: SharePoint 编程