有同事一次將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 的限制。
沒有留言:
張貼留言