SharePoint/MOSS - 从列表中删除其他人未签入的项目

Joh*_*Liu 5 sharepoint moss

一个简单的场景:

我想从我们的MOSS发布网站删除过时的页面布局.一位前同事使用此页面布局创建了一个新页面,但他没有将其签入.我无法删除pagelayout,因为他的文件正在引用它.我无法"看到"该文件,因为它尚未签入,要将其删除.

我尝试过SPFolder.Items,SPList.GetItemById(),其他一些对象模型方法.但SharePoint根本不会向我显示该项目.我甚至围绕着SPList.GetItem(新的SPQuery(){IncludeAllUserPermissions = true;})

有谁知道如何摆脱这个项目?:-)

Joh*_*Liu 8

Abs的答案引导我们给了我们提示 - 嘿,ManageCheckedOutFiles页面如何查看其他用户尚未登记的文件?

  1. 转到~s layouts/ManageCheckedOutFiles.aspx
  2. 继承自Microsoft.SharePoint.ApplicationPages.ManageCheckedOutFilesPage
  3. 反射器12\CONFIG\BIN\Microsoft.SharePoint.ApplicationPages.dll
  4. 在protected void PrepareContent()中我们读取了关键行:
  5. 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();
}
Run Code Online (Sandbox Code Playgroud)

感谢大家 :-)


Abs*_*Abs 5

如果您是网站集管理员,还可以强制签入其他人的签出文件.诀窍是你必须知道它所在的库.如果你知道,你可以导航到那个库,然后做以下事情:

  1. 单击设置 - >文档库设置(或我认为列表设置)
  2. 单击" 权限和管理"列中的" 管理签出文件 "
  3. 您现在应该可以看到已选中的文件列表,然后单击工具栏中的"选择所有权".
  4. 完成后,您可以自己检查文件.