c#.net 中压缩access并且更名

来源:互联网 发布:c语言取反运算符 编辑:程序博客网 时间:2024/06/06 04:18

dbpath=Application.ExecutablePath;
   dbpath=dbpath.Substring(0,dbpath.LastIndexOf("//")+1);

   dbpath=dbpath+//asd.mdb;
   ConnectString="Provider = Microsoft.Jet.OLEDB.4.0;Data Source ="+dbpath;

//压缩原文件路径
   string strOleDb=this.ConnectString.Replace("////","//")+";Jet OLEDB:Engine Type=5";
   //压缩后文件路径
   string strNewDb=strOleDb.Replace("ccbvip","ccb_vip");
   //ccb_vip短文件路径
   string delNewDB=ToShortPathName(dbpath.Replace("////","//").Replace("ccbvip","ccb_vip"));
   //ccbvip短文件路径 
   string delOleDB=ToShortPathName(dbpath.Replace("////","//"));
   //ccb_vip短文件路径(用于重命名的)
   string UpdateDB=ToShortPathName(dbpath.Replace("////","//").Replace("ccbvip","ccb_vip"));
   try
   {    
    //删除将要另存的文件
    if(delNewDB.Length>1)
    {
     Process.Start( "cmd", "/c " + "del "+delNewDB);
     MessageBox.Show("短文件路径:"+delNewDB);
    }
    //定义jro对象
    JRO.JetEngine jet=new JRO.JetEngineClass();
    //压缩另存
    jet.CompactDatabase(strOleDb,strNewDb);//生成了2个文件 一新一旧
    //取旧文件名及路径 先删除旧的    
    Process.Start( "cmd", "/c " + "del "+delOleDB);
    MessageBox.Show("delOleDB:"+delOleDB);
    //把新文件名改名发送        
    //修改文件名ccb_vip-->ccbvip
    Process.Start( "cmd", "/c " + "ren "+UpdateDB+" ccbvip.mdb"); 
    MessageBox.Show("更新的文件:"+UpdateDB);