• SharePoint 更新word 等文档的内容,包括替换哦。功能强大


       public void UpdateDocument()
            {
                System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite siteColl = new SPSite("http://localhost:8080/"))
                    {
                        using (SPWeb web = siteColl.OpenWeb())
                        {
                            try
                            {
                                SPFile spfile = web.GetFile("http://localhost:8080/Lists/DemoLib/abc.txt");
                                if (spfile.Exists)
                                {
                                    byte[] byteArrayFileContentsBefore = spfile.OpenBinary();
                                    if (byteArrayFileContentsBefore.Length > 0)
                                    {
                                        string strFileContentsBefore = enc.GetString(byteArrayFileContentsBefore); //convert byte array to string. 
                                        string newStr = strFileContentsBefore.Replace("http://dev:999","http://google.com");
                                        byte[] byteArrayFileContentsAfter = null;
                                        if (!newStr.Equals(""))
                                        {
                                            byteArrayFileContentsAfter = enc.GetBytes(newStr);
                                            spfile.SaveBinary(byteArrayFileContentsAfter); //save to the file.  
                                        }
                                    }
                                }
                            }
                            catch (Exception e) { }
                        }
                    }
                });
            }

    SPFile has a CopyFile method which can copy the file to a new location. But if there was an existing file on the new location, you can set the overwrite parameter to true to overwrite it. Here is a problem, supposingly there was a workflow already on the file in the new location... when you use CopyFile.. the workflow is lost.. basically it is not an update of the file.. it is infact a delete and re-adding of the file. The following code will overcome this problem

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void UpdateDocumentForERB_ExecuteCode(SPWeb web, string originalFileUrl, string targetFileUrl)
    {
     SPSecurity.RunWithElevatedPrivileges(delegate()
     {
      SPFile OriFile = web.GetFile(originalFileUrl);
      SPFile TarFile = web.GetFile(targetFileUrl);
      
      byte[] byteArrayOriFile = OriFile.OpenBinary();
      
      TarFile.SaveBinary(byteArrayOriFile);
      
     });
      
    }
     
    public void UpdateDocument()
    {
     System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
      
     SPSecurity.RunWithElevatedPrivileges(delegate()
     {
      using (SPSite siteColl = new SPSite("http://localhost:8080/"))
      {
       using (SPWeb web = siteColl.OpenWeb())
       {
        try
        {   
         SPFile spfile = web.GetFile("http://localhost:8080/Lists/DemoLib/abc.txt");
         if (spfile.Exists)
         {
          byte[] byteArrayFileContentsBefore = spfile.OpenBinary();
      
          if (byteArrayFileContentsBefore.Length > 0)
          {
           string strFileContentsBefore = enc.GetString(byteArrayFileContentsBefore); //convert byte array to string.
           string newStr = strFileContentsBefore + "This is the new text added";
           byte[] byteArrayFileContentsAfter = null;
           if (!newStr.Equals(""))
           {
            byteArrayFileContentsAfter = enc.GetBytes(newStr);
            spfile.SaveBinary(byteArrayFileContentsAfter); //save to the file.
           }
          }
         }
        }
        catch (Exception e){}
       
      }
     });
    }
     
  • 相关阅读:
    通信编程:WSAEventSelect 模型通信
    VMware 安装 Red Hat 6 虚拟机
    通信编程:Select 模型通信
    Android:隐式 Intent 调用标准 Action
    Android:显式 Intent
    Linux(CentOS)用户修改密码有效期
    linux 系统中断信息
    qt udp 聊天
    docker更改镜像存储位置
    通过dockerfile构建singularity镜像
  • 原文地址:https://www.cnblogs.com/ahghy/p/2635825.html
Copyright © 2020-2023  润新知