none
在运行SPFile.ChecIn()之后,文档丢失,该如何解决? RRS feed

  • 问题

  • 我在文档库中,调用SPFile.CheckIn方法后,文档会莫名其妙的消失,找不到原因,该如何解决?

    SPFile.UndoCheckOut方法倒是没问题

    2012年2月29日 3:14

答案

  • hi Richard,

    我运行如下代码后,并没有发现文档丢失的情况。我建议你可以加上web.AllowUnsafeUpdates = true; 还有,如果有必要的话,将代码置于SPSecurity.RunWithElevatedPrivileges(delegate() {....放置你的代码});代码块中,以提升相应的权限。

    你可以去日志里面看一下,有没有什么错误,以便于分析问题的所在。

     using (SPSite site = new SPSite("http://jack-7716f30e37:2012/personal/Test/default.aspx"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                       // web.AllowUnsafeUpdates = true;
                        SPDocumentLibrary docs = (SPDocumentLibrary)web.Lists["Folder1"];
                        foreach (SPFile file in docs.RootFolder.Files)
                        {
                            if (file.CheckOutStatus == SPFile.SPCheckOutStatus.None)
                            {
                                file.CheckOut();
                            }
                        }

                        // Check in and add a comment.
                        foreach (SPFile file in docs.RootFolder.Files)
                        {
                            if (file.CheckOutStatus != SPFile.SPCheckOutStatus.None)
                            {
                                file.CheckIn("Programmatically Checked In");
                            }

                        }
                    }
                }

    2012年3月1日 1:38
    版主