zoukankan      html  css  js  c++  java
  • [C#]用SharpZipLib压缩多个文件

    private void simpleButton1_Click(object sender, EventArgs e)
    {
        string dbpath = Application.StartupPath   @"\db";
        string backuppath=Application.StartupPath @"\backup";
        zipdbfile(dbpath, backuppath);
    }
    private void zipdbfile(string dbpath, string backuppath)
    {
        ZipOutputStream ZipStream = null;
        Random rad=new Random();
        try
        {
            string[] filenames = Directory.GetFiles(dbpath);
            Crc32 crc = new Crc32();
            string temp = backuppath   "\\"   DateTime.Now.ToString("yyyy.mm.dd.hh.mm.ss")   ".bak";
            if (File.Exists(temp))
            {
                temp = backuppath   "\\"   DateTime.Now.ToString("yyyy.mm.dd.hh.mm.ss.")   rad.Next(0, 100)   ".bak";
            }
            ZipStream = new ZipOutputStream(File.Create(temp));
            foreach (string file in filenames)
            {
                FileStream fs = File.OpenRead(file);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                string files = file.Substring(file.LastIndexOf(@"\")).Split('\\')[1].ToString();
                ZipEntry entry = new ZipEntry(files);
                entry.DateTime = DateTime.Now;
                entry.Size = fs.Length;
                fs.Close();
                crc.Reset();
                crc.Update(buffer);
                entry.Crc = crc.Value;
                ZipStream.PutNextEntry(entry);
                ZipStream.Write(buffer, 0, buffer.Length);
            }
            ZipStream.Finish();
            ZipStream.Close();
        }
        catch (Exception ex)
        {
            XtraMessageBox.Show("备份失败:"   ex.Message, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            if (ZipStream!=null)
            {
                ZipStream.Close();
            }
        }
    }
  • 相关阅读:
    一个简单的ASP.NET MVC异常处理模块
    通过源码了解ASP.NET MVC 几种Filter的执行过程
    跨站请求伪造
    显示实现接口
    数组为什么可以使用linq查询
    编写轻量ajax组件03-实现(附源码)
    事件
    编写轻量ajax组件02-AjaxPro浅析
    委托
    静态构造函数
  • 原文地址:https://www.cnblogs.com/Hsppl/p/2597660.html
Copyright © 2011-2022 走看看