本文章主要是讲述C#中文件操作的基础知识,如何创建文件夹、创建文件、介绍Directory类\DirectoryInfo类和使用FolderBrowserDialog组件(文件夹对话框)。文章属于基础知识,参考了书籍刘丽霞《C#范例开发大全》,希望对大家有用!
一.界面设计
创建的C# Windows窗体应用程序,界面设计如下添加Lable控件、TextBox控件(其中textBox1可设置属性为只读)、Button控件和FolderBrowserDialog组件(文件夹对话框),点击"浏览按钮"时会弹出"浏览文件夹"的对话框供选择要创建文件夹的路径。同时输入创建个数点击"创建文件夹"按钮可以实现批量创建文件夹功能。
二.源代码
1.添加命名空间
在文件操作中,Directory类和DirectoryInfo类的命名空间都是system.IO:
using System.IO;
2.源代码
点击"浏览"按钮和“创建文件夹”按钮分别实现相应的Click事件,同时添加一个变量string path\filename记录创建文件夹的路径和文件夹名,代码如下:
//定义变量 string path = ""; //文件路径 string filename = ""; //文件夹名 //点击"浏览"按钮 private void button3_Click(object sender, EventArgs e) { //使用文件对话框查找文件夹创建的路径 if(folderBrowserDialog1.ShowDialog() == DialogResult.OK) { path = this.folderBrowserDialog1.SelectedPath; //获取用户选中路径 textBox1.Text = path; //显示路径 } } //点击"创建文件夹"按钮 private void button1_Click(object sender, EventArgs e) { if (textBox2.Text == "") //创建个数不为0 { MessageBox.Show("请输入创建文件夹的个数!"); return; } //Convert将一个基本数据类型转换为另一个数据类型 int num = Convert.ToInt32(textBox2.Text); //创建文件夹个数 //循环创建文件夹 for (int i = 0; i < num; i++) { filename = path + "\\新建文件夹" + i.ToString(); //组合路径 Directory.CreateDirectory(filename); //创建文件夹 } MessageBox.Show("文件夹创建成功!"); }
3.运行结果
选择路径后,点击"创建"按钮就会在相应目录下创建文件夹,如果想创建txt文件可以用File.Create(string path)创建;建议在程序中尽量使用try..catch进行异常信息处理。上面核心知识有两点:(后面将详细介绍)
(1).使用FolderBrowserDialog组件获取创建文件夹路径;
(2).使用Directory类提供的静态方法CreateDirectory()实现创建文件夹.
三.FolderBrowserDialog组件
在winform程序中我们经常需要使用FolderBrowserDialog组件打开相应路径,该控件的运行结果如下图所示:
它的实现代码基本如下:
//FolderBrowserDialog:文件对话框获取文件夹创建的路径 //方法一:调用folderBrowserDialog1 if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) //DialogResult获取对话框结果"确定" { path = this.folderBrowserDialog1.SelectedPath; //获取用户选中路径 textBox1.Text = path; //显示路径 } //方法二:动态实例FolderBrowserDialog控件 FolderBrowserDialog folder = new FolderBrowserDialog(); if (folder.ShowDialog() == DialogResult.OK) { path = folder.SelectedPath; //获取用户选中路径 textBox1.Text = path; //显示路径 }
它提供一种方法提示用户浏览、创建并最终选择一个文件夹,但不可以选择文件;通过浏览树型结构呈现。其中我们使用的SelectedPath属性是获取或设置用户选定的路径(详解MSDN)。同时与它类似的控件还有保存文件位置对话框saveFileDialog控件和打开对话框OpenFileDialog控件:
//实例 SaveFileDialog folder = new SaveFileDialog(); folder.Filter = "网页文件(*.htm)|*.htm|ASP.NET文件(*.aspx)|*.aspx"; //打开保存对话框 点击"确定"按钮执行 if (folder.ShowDialog() == DialogResult.OK) { //读取数据、写入数据操作 如: stream.ReadToEnd(); stream.Write(); stream.Close(); }
四.Directory类和DirectoryInfo类
Directory类用于创建、移动和枚举目录和子目录的实例方法。无法继承此类,其命名空间为System.IO;上面代码中主要采用Directory提供的静态方法CreateDirectory()创建文件夹;而Directoryinfo类是实例类,这两个类包含的大部分方法都是相同的,典型操作有创建、复制、移动、重命名和删除。如果打算多次重用某个对象应考虑使用DirectoryInfo实例方法,而不是Directory静态方法,因为并不总需要安全检查。下面介绍一些简单的方法:
//Directory Directory.Exists("e:\\file"); //检查文件是否存在 Directory.CreateDirectory("e:\\file"); //创建文件夹 Directory.Delete("e:\\file"); //删除文件夹 Directory.GetCreationTime("e:\\nba"); //获取目录的创建时间和日期(dateTime型->ToString) Directory.GetCurrentDirectory(); //获取应用程序当前目录(返回值string) Directory.GetFiles("e:\\"); //获取目录中文件名称 string[] files = Directory.GetFiles("e:\\"); Directory.GetDirectoryRoot("e:\\file"); //获取路径根目录 Directory.Move("E:\\","F:\\"); //移动文件夹(E移动到F) Directory.SetCreationTime(string,DateTime); //设置文件目录创建时间日期 //DirectoryInfo DirectoryInfo dir = new DirectoryInfo(path); //实例对象 dir.GetFileSystemInfos(); //获取目录中所有文件盒子目录 dir.GetFiles(); //返回当前目录文件列表 dir.MoveTo(string); //移动文件或重命名
参考 http://msdn.microsoft.com/zh-cn/library/System.IO.DirectoryInfo(v=vs.80).aspx
五.总结
文章主要介绍基于Directory类和DirectoryInfo类的文件夹、文件操作的基础知识,其中通过例子介绍了FolderBrowserDialog组件等知识,文章最后感谢MSDN中的一些知识和《C#范例开发大全》书籍及作者。同时写该文章主要原是对自己学习该知识的一个总结与记录,可能内容很简单也不是很实用,但还是希望文章对大家有所帮助。如果有错误或不足之处,见谅!
(By:Eastmount 2013-9-21 下午4点 http://blog.csdn.net/eastmount/)