sharepoint文档库文档版本信息操作

SPListItem spDoc = oWeb.Lists["共享文档"].GetItemById(DocumentID);
SPFileVersionCollection versionColl = spDoc.File.Versions;
foreach (SPFileVersion version in versionColl)
   {
    //将UTC时间格式转换为本地时间
      DateTime versionTime = Convert.ToDateTime(oWeb.RegionalSettings.TimeZone.UTCToLocalTime(Convert.ToDateTime(version.Properties["vti_timelastmodified"])));
      string versionTimeString = versionTime.ToString("yyyy/MM/dd/ HH:mm");
      文档版本记录.Add(new ListEntity.文档版本历史记录列表(Convert.ToString(version.VersionLabel),
                                                       versionTimeString,
                                                       Convert.ToString(version.Properties["vti_modifiedby"]),
                                                       Convert.ToString(version.Properties["vti_filesize"]),
                                                       Convert.ToString(version.CheckInComment)));
                
   }
//上面只能得到,版本历史记录-1条,最后一天不在SPFileVersion中。最后一天原则上能在SPListItemVersion 中找到,貌似还没有找到更好的方法。

 

 

        #region 版本信息操作
        /// <summary>
        /// 获取当前版本信息 参数
        /// </summary>
        void getTemplateVision()
        {
            string url = "/Lists/test";
            using (SPSite site = new SPSite(this.Web.Url))
            {
                using (SPWeb spweb = site.OpenWeb())
                {
                    SPList TemplateList = spweb.GetList(url);
                    SPListItem item = TemplateList.GetItemById(this.JRequest.Id);
                    List<DocVersion> vs = new List<DocVersion>();
                    SPFileVersionCollection vsColl = item.File.Versions;
                    foreach (SPFileVersion version in vsColl)
                    {
                        DocVersion v = new DocVersion();
                        v.Created = version.Created;
                        v.Author = version.CreatedBy.Name;
                        v.VersionId = version.ID;
                        v.URL = version.File.Url;
                        v.No = version.VersionLabel;
                        vs.Add(v);
                    }
                    this.JResponse.DocVersion = vs;
                }
            }
        }
 
 
 
        /// <summary>
        /// 覆盖当前版本 
        /// </summary>
        void RestoreTemplateVision()
        {
            string url = "/Lists/test";
            string templatevid = Request["VersionId"];
            int vid = 0;
            Int32.TryParse(templatevid, out vid);
            if (vid > 0)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite spSite = new SPSite(this.Web.Url))
                    {
                        using (SPWeb spWeb = spSite.OpenWeb())
                        {
                            spWeb.AllowUnsafeUpdates = true;
                            SPList TemplateList = spWeb.GetList(url);
                            SPListItem item = TemplateList.GetItemById(this.JRequest.Id);
                            SPFileVersionCollection vs = item.File.Versions;
                            vs.RestoreByID(vid);//将当前版本置顶为最新版本,这个动作会新增一个版本号,并将当前版本文档追加到新增的版本
                            spWeb.AllowUnsafeUpdates = false;
 
                        }
                    }
                });
            }
        }
 
        /// <summary>
        /// 删除当前版本 
        /// </summary>
        void delTemplateVision()
        {
            string url = "/Lists/test";
            string templatevid = Request["VersionId"];
            int vid = 0;
            Int32.TryParse(templatevid, out vid);
            if (vid > 0)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(this.Web.Url))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            web.AllowUnsafeUpdates = true;
                            SPList TemplateList = web.GetList(url); 
                            SPListItem item = TemplateList.GetItemById(this.JRequest.Id);
                            SPFileVersionCollection vs = item.File.Versions;
                            SPFileVersion sv = vs.GetVersionFromID(vid);
                            if (sv != null)
                            {
                                sv.Delete();
                            }
                            web.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
        }
        #endregion
 

 

    public class DocVersion
    {
        public DateTime Created;
        public string Author;
        public string No;
        public int VersionId;
        public string URL;
    }
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NC14 按之字形顺序打印二叉树】

描述 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍历&#xff0c;&#xff08;第一层从左向右&#xff0c;下一层从右向左&#xff0c;一直这样交替&#xff09; 数据范围&#xff1a;0 \le n \le 15000≤n≤1500,树上每个节点的val满足 |val| < 100∣val∣<1…

【NC51 合并k个已排序的链表】K路归并

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0 \le n \le 50000≤n≤5000&#xff0c;每个节点的val满足 |val| < 1000∣val∣<1000 要求&#xff1a;时间复杂度 O(nlogn)O(nlogn) 示例1 输入&#xff1a; [{1…

SharePoint 2010文档库批量下载文档的实现

在SharePoint 2010文档库中&#xff0c;结合单选框&#xff0c;在Ribbon中提供了批量处理文档的功能&#xff0c;比如&#xff0c;批量删除、批量签出、批量签入等&#xff0c;但是&#xff0c;很遗憾&#xff0c;没有提供批量下载&#xff0c;如图: 若选中多个文档后&#xff…

【NC54 三数之和】(待整理)

描述 给出一个有n个元素的数组S&#xff0c;S中是否有元素a,b,c满足abc0&#xff1f;找出数组S中所有满足条件的三元组。 数据范围&#xff1a;0 \le n \le 10000≤n≤1000&#xff0c;数组中各个元素值满足 |val | \le 100∣val∣≤100 空间复杂度&#xff1a;O(n^2)O(n2)&a…

【转】C#执行rar,zip文件压缩的几种方法及我遇到的坑总结

工作项目中需要用到zip压缩解压缩文件&#xff0c;一开始看上了Ionic.Zip.dll这个类库&#xff0c;操作方便&#xff0c;写法简单 对应有个ziphelper类 using Ionic.Zip;public static class ZipHelper{public static void UnZip(string zipPath, string outPath){try{using (…

【LeetCode - 42. 接雨水】

42. 接雨水 难度困难3164 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 […

【转】C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)

C#打包zip文件可以调用现成的第三方dll&#xff0c;事半功倍&#xff0c;而且该dll完全免费&#xff0c;下载地址&#xff1a;SharpZipLib 下载完解压缩后&#xff0c;把 ICSharpCode.SharpZipLib.dll 拷贝到当前项目的目录下&#xff08;如果偷懒的话&#xff0c;可以直接拷贝…

【LeetCode】第283场周赛题解

本场题题目不难&#xff0c;但是力求写出精简优雅的代码&#xff0c;还是有需要学习的地方的。 第一题 力扣 class Solution:def cellsInRange(self, s: str) -> List[str]:ans []a,b,c,d s[0],s[1],s[3],s[4]for i in range(ord(a), ord(c)1):for j in range(int(b),int…

Linq to Sql : 三种事务处理方式

Linq to SQL支持三种事务处理模型&#xff1a;显式本地事务、显式可分发事务、隐式事务。(from MSDN: 事务 (LINQ to SQL))。MSDN中描述得相对比较粗狂&#xff0c;下面就结合实例来对此进行阐述。 0. 测试环境 OSWindows Server 2008 Enterprise sp1IDEVisual Studio 2008, …

【LeetCode - 33】搜索旋转排序数组(二分)

力扣 解题报告&#xff1a; 二分。但是有不少细节要考虑清楚。 所以干脆考虑另一种二分的方式。也就是第二次二分的时候&#xff0c;把两半数组给拼成一个完整的数组&#xff0c;当然下标需要是虚拟的&#xff0c;这一步可以用偏移量取模完成。这样就不需要考虑边界情况了。 …

SHAREPOINT - CAML列表查询

首先要了解的是CAML(Collaboration Application Markup Language)不仅仅是用在对列表、文档库的查询&#xff0c;字段的定义&#xff0c;站点定义等处处使用的都是CAML。 简单的提一下CAML列表查询相关知识&#xff0c;请注意CAML查询无论对于标签还是值均大小写敏感 CAML查询…

【LeetCode - 1765】. 地图中的最高点

力扣 解题报告&#xff1a; 多元BFS。 进阶一下&#xff1a; 二维数组&#xff0c;1表示等高线&#xff0c;0表示平地&#xff0c;比如 输入 010 111 010 输出 010 121 010输入 010 101 010 输出 010 111 010即输入一个二维地图&#xff0c;保证等高线一定是闭合的环&#x…

Linq找不到行或行已更改

1.debug确认&#xff0c;待修改记录已经正确定位&#xff0c;各字段均已正确赋值 2.最后发现原来是Linq使用的表实际中有个字段&#xff0c;数据库中为Nullable&#xff0c;而dbml是Not Nullable&#xff0c;二者不一致 一个逻辑是&#xff0c;我现在填写的是非空值&#xff…

【LeetCode - 32】最长有效括号

给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 1&#xff1a; 输入&#xff1a;s "(()" 输出&#xff1a;2 解释&#xff1a;最长有效括号子串是 "()" 示例 2&#xff1a; 输入…

【转】微服务架构下分布式事务方案

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务&#xff0c;这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇&#xff0c;很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成…

【LeetCode - 443】压缩字符串(模拟)

解题报告&#xff1a; 直接模拟。 class Solution { public:int compress(vector<char>& chars) {int p 0;for(int i 0; i<chars.size();) {int j i1;while(j<chars.size() && chars[j] chars[i]) j;chars[p] chars[i];if(j-i > 1) {int cnt…

Linq to SQL之使用事务

事务是一个原子的工作单位&#xff0c;必须完整的完成单位里的所有工作&#xff0c;要么全部执行&#xff0c;要么全部都不执行。如果提交事务&#xff0c;则事务执行成功&#xff1b;如果回滚事务&#xff0c;则事务执行失败。 事务具备4个基本特性--ACID(原子性、一致性、孤立…

【LeetCode - 798】得分最高的最小轮调(转化法)

解题报告&#xff1a; 思路一&#xff1a;这题首先说一个nlogn的方法。 首先一个主客转化&#xff0c;题目描述是说把数组做翻转&#xff0c;idx不变&#xff0c;然后nums[i]和i作比较。那么我们可以转化为让数组不变&#xff0c;idx转变&#xff0c;即&#xff1a;假设刚开始…

【转】聊聊分布式事务,再说说解决方案

前言 最近很久没有写博客了&#xff0c;一方面是因为公司事情最近比较忙&#xff0c;另外一方面是因为在进行 CAP 的下一阶段的开发工作&#xff0c;不过目前已经告一段落了。 接下来还是开始我们今天的话题&#xff0c;说说分布式事务&#xff0c;或者说是我眼中的分布式事务…

【LeetCode - 2049】统计最高分的节点数目

解题报告&#xff1b; 直接dp。注意mx也得longlong AC代码&#xff1a; class Solution { public:vector<int> vv[200005];int sum[200005];long long ans[200005];int n;void dfs(int x) {ans[x] 1; sum[x] 1;for(int i 0; i<vv[x].size(); i) {dfs(vv[x][i]);s…