using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TProduct.Common { public class AccessDataSetHelper { //Access数据库路径 public static string GetDsFilePath() { var dataFolder = TProduct.GlobeParas.DataFolder; string strDsFilePath = System.Configuration.ConfigurationManager.AppSettings["DsFilePathXPump"];//先读取是否有APP.config中是否有数据库路径配置 if (string.IsNullOrEmpty(strDsFilePath)) strDsFilePath = System.IO.Path.Combine(dataFolder, DsFileName); if (System.IO.File.Exists(strDsFilePath)) { return strDsFilePath; } return strDsFilePath; //throw new Exception(strDsFilePath + ":文件不存在"); } //在Data文件夹下SPump1.zip,解压到Data: 切换公司, 数据库放在Data文件夹下 public static bool ZipDsFile(string zipFilePath, string dsFilePath) { if (!System.IO.File.Exists(zipFilePath)) return true; string dsTempFilePath = ""; try { string tempPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp"); if (!System.IO.Directory.Exists(tempPath)) { System.IO.Directory.CreateDirectory(tempPath); } dsTempFilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp", DsFileName); if (System.IO.File.Exists(dsTempFilePath)) { System.IO.File.Delete(dsTempFilePath); } // TProduct.Common.ZipFileHelper.Decompression(zipFilePath, tempPath, true); } catch //(Exception) { //XtraMessageBox.Show("数据库文件加压失败! 数据库文件无法升级, 错误代码Error:557"); return false; } try { System.IO.File.Copy(dsTempFilePath, dsFilePath, true); } catch // (Exception ex) { // XtraMessageBox.Show("您是否没有管理员权限? 数据库文件无法升级,错误代码Error:590,信息:", ex.Message); return false; } return true; } /// /// 检查数据库文件 /// /// public static bool CheckFile(out string ds_file_path) { ds_file_path = GetDsFilePath(); if (System.IO.File.Exists(ds_file_path)) {//检查Data下有没有SPump1.zip,解压此文件 return true; } //特殊情况zip, 放在Data文件夹下,不放在根目录下 string zip_file = System.IO.Path.Combine(TProduct.GlobeParas.DataFolder, TProduct.Common.AccessDataSetHelper.DsZipFileName); if (!System.IO.File.Exists(zip_file)) { return false ; } if (TProduct.Common.AccessDataSetHelper.ZipDsFile(zip_file, ds_file_path)) {//解压文件 return true ; } else { return false; } } public static string DsFileName { get { return "TProduct.mdb"; } } public static string DsZipFileName { get { return "SPump1.zip"; } } } }