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";
}
}
}
}