public static void CopyFiles(SPDocumentLibrary sourceDocLib, SPDocumentLibrary targetDocLib, bool overwrite = false, bool includeHistory = false, string queryStr = "", string targetContentTypeName = "") { SPQuery query = new SPQuery { RowLimit = MaxRowLimit, Folder = sourceDocLib.RootFolder, Query = queryStr }; SPListItemCollectionPosition listItemCollectionPosition; do { SPListItemCollection items = sourceDocLib.GetItems(query.InScope(SPViewScope.FilesOnly)); listItemCollectionPosition = items.ListItemCollectionPosition; foreach (SPListItem item in items) { SPFile file = item.File; SPFolder targetFolder = targetDocLib.RootFolder; if (!file.Exists) { continue; } SPFile newFile = includeHistory ? CopyFileAndHistory(file, targetFolder, overwrite) : CopyFile(file, targetFolder, overwrite); SPListItem newItem = newFile.Item; newItem[SPBuiltInFieldId.ContentType] = string.IsNullOrEmpty(targetContentTypeName) ? item.ContentType.Name : targetContentTypeName; newItem[SPBuiltInFieldId.Created] = file.TimeCreated; //newItem[SPBuiltInFieldId.Modified] = file.TimeLastModified; newItem[SPBuiltInFieldId.Author] = newFile.Author; //newItem[SPBuiltInFieldId.Editor] = newFile.ModifiedBy; newFile.Item.SystemUpdate(false); } } while (listItemCollectionPosition != null); }
public static void Clear(this SPList list, SPQuery spQuery, bool recycleBinDisabled = false) { if (list == null) { throw new ArgumentNullException("list"); } int itemCount = list.ItemCount; if (itemCount == 0) { return; } SPListItemCollectionPosition listItemCollectionPosition; do { SPListItemCollection items = list.GetItems(spQuery.InScope(SPViewScope.Recursive)); listItemCollectionPosition = items.ListItemCollectionPosition; if (list.ItemCount != 0) { Clear(items, recycleBinDisabled); } itemCount -= (int)spQuery.RowLimit; if (itemCount <= 0) { break; } } while (listItemCollectionPosition != null); if (list.ItemCount != 0) { list.Update(); } }