快速而方便地: 得到 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())
                {
                    SPList 文件庫 = 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 標籤:

留言

您的電子郵件地址不會被公開. 必需的地方已做標記 *