protected void Page_Load(object sender, EventArgs e) { string listId = Request.Params["listId"]; if (string.IsNullOrEmpty(listId)) { return; } SPList list = SPContext.Current.Web.Lists.GetList(new Guid(listId), false); if (!list.IsDocumentLibrary()) { return; } string pItemIds = Request.Params["itemIDs"]; if (string.IsNullOrEmpty(pItemIds)) { return; } SPDocumentLibrary library = (SPDocumentLibrary)list; string[] sItemIds = pItemIds.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); int[] itemsIDs = new int[sItemIds.Length]; for (int i = 0; i < sItemIds.Length; i++) { itemsIDs[i] = Convert.ToInt32(sItemIds[i]); } if (itemsIDs.Length > 0) { using (MemoryStream ms = new MemoryStream()) { using (ZipFileBuilder builder = new ZipFileBuilder(ms)) { foreach (int id in itemsIDs) { SPListItem item = library.GetItemById(id); if (item.IsFolder()) { AddFolder(builder, item.Folder, string.Empty); } else { AddFile(builder, item.File, string.Empty); } } builder.Finish(); WriteStreamToResponse(ms); } } } }