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(); } } }