推荐:.NET嵌入IronPython交互详解随着IronPyhon 2.0 的发布,.NET Dynamic Language Runtime 也更加成熟了,在2.0中我们可以用动态脚本以粘合剂的方式编写架构体系中的各种逻辑单元,既便于修改,又能灵活适合多变的业务场景。当然,我的目标是在 Platform Framework 中能嵌入脚本引擎,而不
第一次写使用.NET C# 开发了一个稍稍像样子的软件,在这个软件开发过程中我查了好多资料,也学到了很多小技巧像FolderBrowserDialog(用于浏览选择文件夹的对话框)、MessageBox(消息处理对话框)、DirectoryInfo(目录信息,可用于创建、检测是否存在等对目录的操作)、FileInfo(文件信息,可用于文件的检测、文件信息的获取、复制等操作)、DataGridView(数据表格控件,用于显示文件信息列表数据)、DataRowView(对一些数据源信息进行筛选,排序)、System.Diagnostics.Process.Start(启动其它程序打开文件夹目录),下面就依次介绍一下在此软件开发中我都使用到以上控件、对象的哪些内容。
一、FolderBrowserDialog(文件夹浏览对话框),在此软件中用于打开选择数据库根目录或打开创建、选择备份目录,下面是两处位置的代码详细介绍。
1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮。
C#代码
- FolderBrowserDialog df = new FolderBrowserDialog();
-
-
- df.Description = "选择所有数据库文件所在根目录地址";
-
-
- df.ShowNewFolderButton = false;
-
-
-
-
- if (tBoxDbRoot.Text != "")
- {
- df.SelectedPath = tBoxDbRoot.Text;
- }
- else
- {
- df.RootFolder = Environment.SpecialFolder.MyComputer;
- }
-
- DialogResult result = df.ShowDialog();
- if (result == DialogResult.OK)
- {
-
- string folderPath = df.SelectedPath;
- if (folderPath != "")
- {
- tBoxDbRoot.Text = folderPath;
- Cls_dbRootPath = tBoxDbRoot.Text;
- }
- }
2.选择数据库备份目录或创建新的数据库备份目录
C#代码
- FolderBrowserDialog bakFolder = new FolderBrowserDialog();
- bakFolder.Description = "选择所有数据库文件备份目录";
-
- 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#代码
- DialogResult resultNum=MessageBox.Show("数据库文件已备份到“" + Cls_dbBackRootPath + "”,是否打开备份目录?", "数据库备份成功", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
- if (resultNum == DialogResult.Yes)
- {
- openDirectoryAddress(Cls_dbBackRootPath);
- }
这里就不需要再做介绍了,看一下消息对话框的几个参数都分别是什么
2.以不同姿态显示的消息对话框
C#代码
- MessageBox.Show("这里是消息的提示内容", "消息的提示标题",消息对话框上显示的按钮, 消息对话框上显示的提示图标);
三、DirectoryInfo(目录信息)检测目录是否存在、创建目录文件夹在软件中主要用于分析并创建指定的文件地址字符串中各级目录
1.检测目录是否存在使用Exists方法
C#代码
- DirectoryInfo curFolderRoot = new DirectoryInfo(Cls_dbRootPath);
- if (curFolderRoot.Exists)
- {
-
- }
2.创建目录使用Create()方法
C#代码
- DirectoryInfo curFolderRoot = new DirectoryInfo(Cls_dbRootPath);
- if (curFolderRoot.Exists)
- {
- curFolderRoot.Create()
- }
四、FileInfo(文件信息) 获取文件信息、复制、删除文件等,将指定文件夹下的符合条件的文件的相关信息依次写入DataGridView控件。
1.获取文件信息代码:
C#代码
- FileInfo dbFile = new FileInfo(dbPath);
-
- 写入DataGridView控件的某行某列上
- dGrideFileList.Rows[rowsNum].Cells[1].Value = dbFile.Length;
-
- 修改时间写入
- dGrideFileList.Rows[rowsNum].Cells[5].Value = dbFile.LastWriteTime.ToString();
2.检测文件是否存在执行删除复制操作
C#代码
- FileInfo copyFile = new FileInfo(copyToPath);
- 检测文件是否存在
- if (copyFile.Exists)
- {
-
- File.Delete(copyToPath);
- }
- 执行文件的复制操作
- File.Copy(dbPath, copyToPath);
五、DataGridView(数据表格控件)用于显示、更新、删除等对数据列表的操作
1.将遍历符合要求的数据添加到控件
C#代码
- filesTotelSize += curDbFile.Length;
-
-
- string[] fileInfoArr = new string[]{
- 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)
- {
- DataRowView drv = dGrideFileList.SelectedRows[0].DataBoundItem as DataRowView;
- drv.Delete();
- }
六、Process启动Exporler.exe打开指定物理地址文件夹
C#代码
- #region 打开目录地址
-
-
-
-
- private void openDirectoryAddress(string dirAddress)
- {
- DirectoryInfo dirFolder = new DirectoryInfo(dirAddress);
- if (dirFolder.Exists)
- {
- System.Diagnostics.Process.Start("explorer.exe", dirAddress);
- }
- else
- {
- MessageBox.Show("未找到需要打开的目录地址", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- #endregion
软件介绍与资源下载:
批量压缩ACCESS数据库工具 V 1.1.0版
批量压缩多站点下的ACCESS数据库
分享:如何使ASP.NET 避免页面重新整理时重复送出有些使用者的行为真是令人猜不透,开网页有事没事就来给你 Refresh 一下,这个动作看似无害,但是在刚执行过 Submit 的情况下,Refresh 网页会造成重复执行,这也是为什么在各大购物网站的交易付款动作,都会提示「不要关闭网页或重新整理避免造成交易失败或