下面给出了使用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://),转载请保留此信息!