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(item111[SPBuiltInFieldId.Modified]) );
SPListItem itemss1 = destfile11.Item;
object obj = items[i].Fields[SPBuiltInFieldId.Modified];
MessageBox .Show(item111["Reference"]+"") ;
itemss1["Reference"] = item111["Reference"] ;
}
}
}
}
}
catch (Exception ex)
{
}