c# 實現文件批量壓縮

今天改一個網站的功能,網站提供一些微信的素材,每一個頁面對應一套素材,若是會員一張一張下載,那麼網站交互性就有點太差了。因此修改的內容就是提供一個按鈕,點擊按鈕將這套圖片和網站信息進行打包下載。git

思路:
首先是按格式生成網站信息,而後遍歷目錄找到全部素材,將這些文件打包,並使用response輸出。
文件打包的實現是使用外部開源庫DotNetZip微信

代碼實現:
新建一個asp.net空白項目,新建一個頁面,引用DotNetZip庫下的Ionic.Zip.dll
在頁面中引用Ionic.Zip命名空間app

using Ionic.Zip;

批量壓縮載的代碼:
在Page_Load中加入asp.net

if (!Page.IsPostBack)
{
    Response.Clear();
    Response.BufferOutput = false;
    string[] files = Directory.GetFiles(Server.MapPath("img/"));
    //網站文件生成一個readme.txt文件
    String readmeText = String.Format("README.TXT" +Environment.NewLine+
                                "官方地址:http://shandongit.com"
                                );
    Response.ContentType = "application/zip";
    Response.AddHeader("content-disposition", "inline; filename=\"" + String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss")) + "\"");
    //批量壓縮操做
    using (ZipFile zip = new ZipFile())
    {
        // the Readme.txt file will not be password-protected.
        zip.AddEntry("Readme.txt", readmeText, Encoding.Default);
        zip.Password = "shandongit.com";
        zip.Encryption = EncryptionAlgorithm.WinZipAes256;

        // filesToInclude is a string[] or List<String>
        zip.AddFiles(files, "files");

        zip.Save(Response.OutputStream);

    }
    Response.Close();
}
相關文章
相關標籤/搜索