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();
            }
        }
    }
  • 相关阅读:
    XML 浏览器支持
    浏览器中的XML
    C/C++中判断某一文件或目录是否存在
    C/C++程序员必须熟练应用的开源项目 -- 转
    VC 中窗口的销毁
    sql proc触发异常处理回滚
    为Array 添加indexOf
    Js的两种post方式
    sql 针对多个id或名称的分割和组合
    sql 查看语句的性能
  • 原文地址:https://www.cnblogs.com/Hsppl/p/2597660.html
Copyright © 2011-2022 走看看