• [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();
            }
        }
    }
  • 相关阅读:
    tomcat的部署的三种方式
    烤肉说
    抽象思维
    如何沟通
    如何学习
    道别信
    不要将预感抹杀
    OpenCV 用cv::IMREAD_GRAYSCALE与cv::cvtColor转灰度得到灰度图不一致问题
    Qt 文件夹不存在,创建文件夹,文件不存在,创建文件
    Qt 一个信号对应多个槽,多个信号对应一个槽的执行顺序
  • 原文地址:https://www.cnblogs.com/Hsppl/p/2597660.html
Copyright © 2020-2023  润新知