一个简单的场景:
我想从我们的MOSS发布网站删除过时的页面布局.一位前同事使用此页面布局创建了一个新页面,但他没有将其签入.我无法删除pagelayout,因为他的文件正在引用它.我无法"看到"该文件,因为它尚未签入,要将其删除.
我尝试过SPFolder.Items,SPList.GetItemById(),其他一些对象模型方法.但SharePoint根本不会向我显示该项目.我甚至围绕着SPList.GetItem(新的SPQuery(){IncludeAllUserPermissions = true;})
有谁知道如何摆脱这个项目?:-)
Abs的答案引导我们给了我们提示 - 嘿,ManageCheckedOutFiles页面如何查看其他用户尚未登记的文件?
转到~s layouts/ManageCheckedOutFiles.aspx
继承自Microsoft.SharePoint.ApplicationPages.ManageCheckedOutFilesPage
反射器12\CONFIG\BIN\Microsoft.SharePoint.ApplicationPages.dll
在protected void PrepareContent()中我们读取了关键行:
IList checkedOutFiles = this.CurrentList.CheckedOutFiles;
所以回到我们的代码中
SPDocumentLibrary doclib = PublishingWeb.PagesList as SPDocumentLibrary; foreach(var checkedoutfile in doclib.CheckedOutFiles) { checkedoutfile.TakeOverCheckOut(); var file = doclib.GetItemById(checkedoutfile.ListItemId); file.CheckIn(); }
感谢大家 :-)
如果您是网站集管理员,还可以强制签入其他人的签出文件.诀窍是你必须知道它所在的库.如果你知道,你可以导航到那个库,然后做以下事情:
单击设置 - >文档库设置(或我认为列表设置)
单击" 权限和管理"列中的" 管理签出文件 "
您现在应该可以看到已选中的文件列表,然后单击工具栏中的"选择所有权".
完成后,您可以自己检查文件.