string siteUrl = "http://moss/site";
using (SPSite site = new SPSite(siteUrl))
{
using (_web = site.OpenWeb())
{
SPList list = _web.Lists["CopyTest"];
Console.WriteLine("Items.Count:{0}, ItemCount:{1}", list.Items.Count, list.ItemCount);
Console.WriteLine("Creating 1.0 folder ... ");
SPFolder rootFolder = _web.GetFolder("/CopyTest");
SPFolder version1Folder = rootFolder.SubFolders.Add("/CopyTest/1.0");
version1Folder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count:{0}, ItemCount:{1}", list.Items.Count, list.ItemCount);
Console.WriteLine("Creating Test1 in 1.0 folder ... ");
SPFolder testFolder = version1Folder.SubFolders.Add(version1Folder.Url + "/Test1");
testFolder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count: {0}", list.Items.Count);
Console.WriteLine("ItemCount: {0}", list.ItemCount);
Console.WriteLine("Creating Test1.1 in Test1 folder ... ");
SPFolder test2Folder = version1Folder.SubFolders.Add(version1Folder.Url + "/Test1/Test1.1");
test2Folder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count: {0}", list.Items.Count);
Console.WriteLine("ItemCount: {0}", list.ItemCount);
Console.WriteLine("Creating Test2 in 1.0 folder ... ");
SPFolder test3Folder = version1Folder.SubFolders.Add(version1Folder.Url + "/Test2");
test3Folder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count: {0}", list.Items.Count);
Console.WriteLine("ItemCount: {0}", list.ItemCount);
Console.WriteLine("Creating 2.0 folder in the root ... ");
SPFolder version2Folder = rootFolder.SubFolders.Add("/CopyTest/2.0");
version2Folder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count:{0}, ItemCount:{1}", list.Items.Count, list.ItemCount);
Console.WriteLine("Copy 1.0 items to 2.0");
foreach (SPFolder subFolder in version1Folder.SubFolders)
{
Console.WriteLine("Copy {0} folder ... ", subFolder.Name);
subFolder.CopyTo(version2Folder.Url + "/" + subFolder.Name);
SPFolder folder = _web.GetFolder(version2Folder.Url + "/" + subFolder.Name);
if(folder.Exists)
Console.WriteLine("Folder exists, url is: {0}", folder.ServerRelativeUrl);
folder.Update();
list.Update();
Console.WriteLine("OK");
Console.WriteLine("Items.Count:{0}, ItemCount:{1}", list.Items.Count, list.ItemCount);
}
Console.WriteLine("Deleting 1.0 folder ... ");
SPFolder deleteFolder = _web.GetFolder("/CopyTest/1.0");
if (deleteFolder.Exists)
{
deleteFolder.Delete();
list.Update();
Console.WriteLine("OK");
}
Console.WriteLine("Deleting 2.0 folder ... ");
deleteFolder = _web.GetFolder("/CopyTest/2.0");
if (deleteFolder.Exists)
{
deleteFolder.Delete();
list.Update();
Console.WriteLine("OK");
}
Console.WriteLine("SPList.ItemCount = {0}", list.ItemCount);
}
}