如何上传带有元数据的文档以避免重复版本控制

本文关键字:版本控制 文档 元数据 | 更新日期: 2023-09-27 18:18:13

我正在使用sharepoint foundation 2010中的服务器对象模型将文档与元数据一起上传到文档库。我使用以下代码

// Initialize instance of existing site collection
                    using (SPSite site = new SPSite(siteUrl))
                    {
                        //Initailize instance of exiting web site (for e.g. Team Site)
                        using (SPWeb web = site.RootWeb)
                        {
                            //Get list with specified name in the existing web site
                            SPList list = web.Lists[libraryName];
                            //Get the collection of folders in the existing web site
                            String url = list.RootFolder.ServerRelativeUrl.ToString();
                            SPFolderCollection folders = web.GetFolder(url).SubFolders;
                            //Add new folder in the exiting collection of folders
                            SPFolder folder = folders.Add(folderName);
                            //SPFolder folder = web.GetFolder(siteUrl + "/" + libraryName + "/" + folderName);
                            //byte[] fileContents = System.IO.File.ReadAllBytes(@fileUrl);                                                     
                            //Add file in the newly added folder with overwrite
                            var overWrite = true;
                            SPFile file = folder.Files.Add(saveFileWithName, fileContents, overWrite);

                            //Get the list item of the newly added file
                            SPListItem listItem = file.ListItemAllFields;
                            //Assign values to the fields of newly added file
                            listItem["User_x0020_Name"] = userName;
                            listItem["Document_x0020_Type"] = documentType;
                            listItem["Check_x0020_Type"] = checkType;
                            //Update the list item with the newly added values to the fields
                            listItem.Update();
                            //Get the unique id of the newly added list item
                            documentGuid = listItem["UniqueId"].ToString();
                        }
                    }

上面的代码运行良好。我在文档库上启用了版本控制。当上面的代码运行时,它会在文档库中创建两个版本。一个是用

上传文档
SPFile file = folder.Files.Add(saveFileWithName, fileContents, overWrite);

和另一个,当它向列User_x0020_Name, Document_x0020_Type

添加值时

Check_x0020_Type使用

listItem.Update();

当用户上传文档以及添加元数据时,我想只创建一个版本。如何做到这一点?您能提供我任何代码或链接,通过我可以解决上述问题吗?

如何上传带有元数据的文档以避免重复版本控制

保持代码不变,只是替换" listtitem . update ();" with " listtitem . systemupdate (false);"它将更新元数据,而不会增加版本号。