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();
            }
        }
    }
  • 相关阅读:
    leetcode 137
    leetcode 134
    133. Clone Graph
    leetcode 131
    leetcode 130
    mac uwsgi ssl issue handler
    leetcode 85 Maximal Rectangle golang
    leetcode 84 golang
    leetcode 61
    C# 后台实现一次上传多个文件
  • 原文地址:https://www.cnblogs.com/Hsppl/p/2597660.html
Copyright © 2011-2022 走看看