将文档从sharepoint doc库移动到另一个文档库以及列和文件夹 [英] Moving the document from sharepoint doc library to another along with columns and folders

查看:125
本文介绍了将文档从sharepoint doc库移动到另一个文档库以及列和文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我想将文档从一个文档库移动到另一个文档库以及文件夹和字段。我写了一些移动它们的代码,但我只复制文件而不是所有字段。任何人都可以帮助我。

我正在编写以下代码

Hi,

i want to move the documents from one document library to another document library along with folders and fields. I written some code for moving them but i only file is copied not the all the fields. Can any one help me.
I am writing the below code

try
{
   SPSite objactualsite = new SPSite("http://sitename");
   SPWeb objactualweb = objactualsite.OpenWeb();
   SPList objactuallist = objactualweb.Lists.TryGetList("listname");
   if (objactuallist != null)
   {
      SPView objactualviewcoll = objactuallist.Views["All Documents"];
      SPViewFieldCollection fldcoll = objactualviewcoll.ViewFields;
      SPSite objdestsite = new SPSite("http://sitename/testsite");
      SPWeb objdestweb = objdestsite.OpenWeb();
      SPList objdestlist = objdestweb.Lists.TryGetList("listname");
      if (objdestlist == null)
      {
         objdestweb.Lists.Add("listname", "same as previous list", SPListTemplateType.DocumentLibrary);
      }
      else
      {
         SPQuery query = new SPQuery();
         query.Query = "<view />";
         SPListItemCollection items = objactuallist.GetItems(query);
         SPFileCollection flcoll = null;
         SPDocumentLibrary _mydoclib = null;
         string ss = "http://sitename/testsite/listname/";
         for (int i = 1; i < items.Count; i++)
         {
            if (items[i].Folder != null)
            {
               ss = ss + items[i].Folder.Name;
               _mydoclib = (SPDocumentLibrary)objdestweb.Lists["listname"];
               SPFolderCollection _myfolders = objdestweb.Folders;
               _myfolders.Add("http://sitename/testsite/listname/" + items[i].Folder.Name + "/");
               objdestlist.Update();
               SPFolder usefolder = objactuallist.RootFolder.SubFolders[items[i].Folder.Name];
               for (int k = 0; k < usefolder.Files.Count; k++)
               {
                  SPFile item11 = usefolder.Files[k];
                  byte[] filebytes1 = item11.OpenBinary();
                  string desturl1 = ss + "/" + item11.Name;
                  SPFile destfile1 = objdestlist.RootFolder.Files.Add(desturl1, filebytes1, true);
                  SPListItem itemss = destfile1.Item;
                  itemss[SPBuiltInFieldId.Modified] = Convert.ToDateTime(usefolder.Files[k].Item[SPBuiltInFieldId.Modified]);
                  destfile1.Item.Update();
               }
            }
            else
            {
               ss = "http://sitename/testsite/doctrack/";

               SPListItem item111 = objactuallist.Items[i];
               byte[] filebytes11 = item111.File.OpenBinary();
               //string desturl1 = objdestlist.RootFolder.Url + "/" + item11.File.Name;
               string desturl11 = ss + item111.File.Name;
               SPFile destfile11 = objdestlist.RootFolder.Files.Add(desturl11, filebytes11, objactualsite.RootWeb.CurrentUser, objactualsite.RootWeb.CurrentUser, Convert.ToDateTime(item111[SPBuiltInFieldId.Created]),Convert.ToDateTime(item11 [SPBuiltInFieldId.Modified]) );


               SPListItem itemss1 = destfile11.Item;
               object obj = items[i].Fields[SPBuiltInFieldId.Modified];
               MessageBox .Show(item111["Reference"]+"") ;
               itemss1["Reference"] = item111["Reference"] ;
            }
         }
      }
   }
}
catch (Exception ex)
{

}

推荐答案

这篇关于将文档从sharepoint doc库移动到另一个文档库以及列和文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆