• 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){}
       
      }
     });
    }
     
  • 相关阅读:
    Android在layout xml中使用include完成静态加载
    ImageSwitch图像切换控件
    合并石子大总结
    子矩阵(暴搜(全排列)+DP)
    回路(一笔画问题)
    道路重建(记忆化搜索+贪心)
    【NOIP2013 普及组】车站分级
    UML的基本关联
    Matlab画图-非常具体,非常全面
    面向对象程序设计与面向过程程序设计解析
  • 原文地址:https://www.cnblogs.com/ahghy/p/2635825.html
Copyright © 2020-2023  润新知