快速、 方便: 获取 SPItemList SPFolder

我一直跑到这一问题和谷歌似乎从未明白想做什么, 我想我会写这下.

我一直在做很多在最后一周或两个调试的事件接收器. 二被定义对文档库. 在文档库中的个别项目密切应用到其父文件夹. 所以, 我总是该项目的文件夹用于各种操作. 在调试时, 我需要更新文件夹为我知道其 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 标签:

留言

您的电子邮件地址不会被公开. 必需的地方已做标记 *