Zip Folder
It doesn't get any simpler to use than this, an HTTP Handler that zips up and entire folder and its descendants and delivers the Zip file back to the users.
A one line entry in web.config sets it up
<add verb="*" path="*.zip" type="AWDServerControls.zipfolder, AWDServerControls"/>
Using IIS 6 or greater the extension .zip needs to be registered once for either the website or the server using this dialog
Source of /samples/zip.aspx
<%@ Page Title="Zip File Demo" Language="vb" AutoEventWireup="false" MasterPageFile="~/samples/sample.master" CodeBehind="zip.aspx.vb" Inherits="www.aviationwebdesign.co.uk.zip" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h1>Zip File Demo</h1>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="/samples/images.zip">Download Zip File Containing Images</asp:HyperLink>
</asp:Content>