使用C#开发批量ACCESS数据库压缩程序

时间:2021-05-02

下面给出了使用C# 开发的一个压缩ACCESS数据库的程序

像FolderBrowserDialog(用于浏览选择文件夹的对话框)、MessageBox(消息处理对话框)、DirectoryInfo(目录信息,可用于创建、检测是否存在等对目录的操作)、FileInfo(文件信息,可用于文件的检测、文件信息的获取、复制等操作)、DataGridView(数据表格控件,用于显示文件信息列表数据)、DataRowView(对一些数据源信息进行筛选,排序)、System.Diagnostics.Process.Start(启动其它程序打开文件夹目录),下面就依次介绍一下在此软件开发中我都使用到以上控件、对象的哪些内容。

一、FolderBrowserDialog(文件夹浏览对话框),在此软件中用于打开选择数据库根目录或打开创建、选择备份目录,下面是两处位置的代码详细介绍。

1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮。

C#代码

  • FolderBrowserDialogdf=newFolderBrowserDialog();
  • //设置文件浏览对话框上的描述内容
  • df.Description="选择所有数据库文件所在根目录地址";
  • //不显示对话框下方的创建新文件夹按钮
  • df.ShowNewFolderButton=false;
  • if(tBoxDbRoot.Text!="")
  • {
  • df.SelectedPath=tBoxDbRoot.Text;
  • }
  • else
  • {
  • df.RootFolder=Environment.SpecialFolder.MyComputer;//指定对话框默认显示的根目录地址注意RootFolder的接收数据类型
  • }
  • //显示文件夹对话框,并返回对话框处理结果数值
  • DialogResultresult=df.ShowDialog();
  • if(result==DialogResult.OK)//另外一种判断方法if(df.ShowDialog(this)==DialogResult.OK)
  • {
  • //将中的数据库目录地址赋于类全局变量数据库根目录
  • stringfolderPath=df.SelectedPath;
  • if(folderPath!="")
  • {
  • tBoxDbRoot.Text=folderPath;
  • Cls_dbRootPath=tBoxDbRoot.Text;
  • }
  • }
  • 2.选择数据库备份目录或创建新的数据库备份目录

    C#代码
  • FolderBrowserDialogbakFolder=newFolderBrowserDialog();
  • bakFolder.Description="选择所有数据库文件备份目录";
  • //这里没有设计bakFolder.ShowNewFolderButton是因为默认些按钮是显示的。
  • if(Cls_dbBackRootPath!="")
  • {
  • bakFolder.SelectedPath=Cls_dbBackRootPath;
  • }
  • else
  • {
  • bakFolder.RootFolder=Environment.SpecialFolder.MyComputer;
  • }
  • if(bakFolder.ShowDialog(this)==DialogResult.OK)
  • {
  • Cls_dbBackRootPath=bakFolder.SelectedPath;
  • //这里省略了开始处理执行数据库备份的代码...
  • }
  • 二、MessageBox(消息对话框)其实他也没有什么好介绍的,只使用到了它的消息状态返回执行其它代码和普通的消息提示显示。

    1.具有消息结果返回的处理代码

    C#代码
  • DialogResultresultNum=MessageBox.Show("数据库文件已备份到“"+Cls_dbBackRootPath+"”,是否打开备份目录?","数据库备份成功",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
  • if(resultNum==DialogResult.Yes)//判断是否按下“是”的按钮
  • {
  • openDirectoryAddress(Cls_dbBackRootPath);
  • }
  • 这里就不需要再做介绍了,看一下消息对话框的几个参数都分别是什么

    2.以不同姿态显示的消息对话框

    C#代码
  • MessageBox.Show("这里是消息的提示内容","消息的提示标题",消息对话框上显示的按钮,消息对话框上显示的提示图标);
  • 三、DirectoryInfo(目录信息)检测目录是否存在、创建目录文件夹在软件中主要用于分析并创建指定的文件地址字符串中各级目录

    1.检测目录是否存在使用Exists方法

    C#代码
  • DirectoryInfocurFolderRoot=newDirectoryInfo(Cls_dbRootPath);//指定需要检测的文件夹物理地址
  • if(curFolderRoot.Exists)
  • {
  • //...
  • }
  • 2.创建目录使用Create()方法

    C#代码
  • DirectoryInfocurFolderRoot=newDirectoryInfo(Cls_dbRootPath);//指定需要检测的文件夹物理地址
  • if(curFolderRoot.Exists)
  • {
  • curFolderRoot.Create()
  • }
  • 四、FileInfo(文件信息)获取文件信息、复制、删除文件等,将指定文件夹下的符合条件的文件的相关信息依次写入DataGridView控件。

    1.获取文件信息代码:

    C#代码
  • FileInfodbFile=newFileInfo(dbPath);
  • 写入DataGridView控件的某行某列上
  • dGrideFileList.Rows[rowsNum].Cells[1].Value=dbFile.Length;
  • 修改时间写入
  • dGrideFileList.Rows[rowsNum].Cells[5].Value=dbFile.LastWriteTime.ToString();
  • 2.检测文件是否存在执行删除复制操作

    C#代码
  • FileInfocopyFile=newFileInfo(copyToPath);
  • 检测文件是否存在
  • if(copyFile.Exists)
  • {
  • //如果存在文件则执行删除操作
  • File.Delete(copyToPath);
  • }
  • 执行文件的复制操作
  • File.Copy(dbPath,copyToPath);
  • 五、DataGridView(数据表格控件)用于显示、更新、删除等对数据列表的操作

    1.将遍历符合要求的数据添加到控件

    C#代码
  • filesTotelSize+=curDbFile.Length;
  • //将文件信息写入字符串数组
  • string[]fileInfoArr=newstring[]{
  • curDbFile.FullName.Replace(Cls_dbRootPath,"").ToString(),
  • CheckFile.FormatSize(curDbFile.Length),
  • "0",
  • "未压缩",
  • CheckFile.GetTypeName(filePath),
  • curDbFile.LastWriteTime.ToString()
  • };
  • //将文件行数组数据添加至控件行集中
  • dGrideFileList.Rows.Add(fileInfoArr);
  • //刷新控件显示
  • dGrideFileList.Refresh();
  • 2.让控件垂直滚动条自动滚动

    C#代码
  • dGrideFileList.FirstDisplayedScrollingRowIndex=i;
  • dGrideFileList.Refresh();
  • 3.光标定位跟随遍历定位到控件单元格

    C#代码
  • dGrideFileList.CurrentCell=dGrideFileList.Rows[i].Cells[0];
  • dGrideFileList.Refresh();
  • 4.DataRowView删除控件选中行

    C#代码

  • //删除选中行数据
  • if(this.dGrideFileList.SelectedRows.Count>0)
  • {
  • DataRowViewdrv=dGrideFileList.SelectedRows[0].DataBoundItemasDataRowView;
  • drv.Delete();
  • }
  • 六、Process启动Exporler.exe打开指定物理地址文件夹

    C#代码
  • #region打开目录地址
  • ///<summary>
  • ///打开目录地址
  • ///</summary>
  • ///<paramname="dirAddress">需要打开的文件夹目录物理地址</param>
  • privatevoidopenDirectoryAddress(stringdirAddress)
  • {
  • DirectoryInfodirFolder=newDirectoryInfo(dirAddress);
  • if(dirFolder.Exists)
  • {
  • System.Diagnostics.Process.Start("explorer.exe",dirAddress);
  • }
  • else
  • {
  • MessageBox.Show("未找到需要打开的目录地址","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
  • }
  • }
  • #endregion
  • 本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章