有同事一次將4000 多個檔案放到MOSS 的文件庫後,卻沒有簽入。此時,再請他簽入時,卻只能一個一個檔案簽入了。
救命啊!果然不是人做的。此時只有使用系統帳號,取得所的已取出文件的所有權,然後再以系統帳號再簽入。
可是,還是不行。因為一次要處理的文件太多了,全選並取得所有權時,伺服器會出現 Sql Server Parameters 最多只能有 2100 個的限制。
只好寫程式了。以下就是我寫的程式。
private static void TakeOwnershipOverAllCheckoutFiles(string sitePath, string refWeb, string listName)
    {
      using (SPSite site = new SPSite(sitePath))
      {
        SPWeb web = site.OpenWeb(refWeb);
        SPList list = web.Lists[listName];
        SPDocumentLibrary library = (SPDocumentLibrary)list;
        IList<SPCheckedOutFile> files = library.CheckedOutFiles;
        foreach (SPCheckedOutFile file in files)
          file.TakeOverCheckOut();
      }
    }
這樣一來,就避免了Web UI 的限制。
沒有留言:
張貼留言