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