文件操作(读取和写入)

来源:互联网 发布:淘宝助理 菜鸟打印 编辑:程序博客网 时间:2024/06/08 09:12

l      命名空间和操作类

l      打开和保存文件对话框

l      读取和写入文件

1.引用命名空间和操作类

  命名空间:System.IO

  操作类:File

    相关方法:

1File.Copy(string sourceFileName, string destFileName,bool overwrite);复制文件,无返回值    参数:待复制的文件路径(含文件名),欲赋值到的文件路径(含文件名),是否覆盖)

例如:File.Copy(@"G:\入学考试\exam\exam.sln",@"G:\入学考试\exam\exam1.sln",true);

2File.Exists(string path);   确定文件是否存在,返回值为bool类型

 参数:确定文件路径(含文件名)

3)实例名.ShowDialog()   显示对话框,实例方法。

2.打开和保存文件对话框

 OpenFileDialog              打开文件对话框

 SaveFileDialog              保存文件对话框

 //创建打开文件对话框实例

  OpenFileDialog ofd = new OpenFileDialog();

//选择文件并确定

           if (ofd.ShowDialog() ==DialogResult.OK)

           {

 //将文件路径(含文件名)显示在文本框中

               txtShow.Text = ofd.FileName;

           }

下边为这两个类的几个相同属性:

ofd.InitialDirectory ="D:\\html";  实例的InitialDirectory属性设置打开文件对话框的默认目录。

ofd.Filter ="可执行程序|*.exe|文本文件|*.txt|所有文件|*.*";  实例的Filter属性对对话框中文件进行筛选(两个一组,以竖线划分)

 

 FolderBrowserDialog          浏览文件对话框

 Directory                  对目录操作的类

Directory.GetFiles            获得目录中的文件(不包括子目录)

         //创建浏览文件对话框

           FolderBrowserDialog fbds =new FolderBrowserDialog();

           if (fbds.ShowDialog() ==DialogResult.OK)

           {

               //获取选择文件中的所有文件路径

               string[] soursePath =Directory.GetFiles(txtShow.Text);

               //创建用于存储目标文件路径的变量

               string destpath;               

               foreach (string pathin soursePath)

               {

                   //目标文件路径(含文件名)

                   destpath=fbds.SelectedPath+"\\"+path.Substring(path.LastIndexOf("\\")+1);

                   //复制文件

                   File.Copy(path, destpath,true);

               }

           }

Directory.GetDirectories         获取选择目录中的子目录

---------------------获取包括子目录文件在内的所有文件----------------------

               //获取选择选择中的所有目录

               string[] direPath =Directory.GetDirectories(txtShow.Text);

               foreach (string path1in direPath)

               {

 //获取每个目录下所有文件的路径

                   string[] soursePath =Directory.GetFiles(path1);

                   //创建用于存储目标文件路径的变量

                   string destpath;

                   foreach (string pathin soursePath)

                   {

                       //目标文件路径(含文件名)

                       destpath = fbds.SelectedPath +"\\" + path.Substring(path.LastIndexOf("\\") + 1);

                       //复制文件

 

                       File.Copy(path, destpath,true);

                   }

               }              

Directory.Delete(string pathbool recursive);     删除目录,参数2可指定是否删除子目录(包括子目录文件)  true时会删除目录所有(包括该目录)

3.控件与窗体关系的属性

Anchor    指定随着窗体的改变,控件的改变(指定保持控件到窗体四边的距离)

Dock       绑定控件与窗体边框关系(与Anchor互斥)

4.读取文件

 1)创建一个文件流  创建FileStream的对象。

 2)创建读取器     创建StreamReader的对象。

 3)读取文件    参数可指定读取编码

 4)关闭读取器和文件流(可以调用对象的close方法,也可以将上面几步写入using中)

例:

  OpenFileDialog ofd=new OpenFileDialog ();

           ofd.Filter ="文本文件|*.txt";

           if (ofd.ShowDialog() ==DialogResult.OK)

           {

               string path = ofd.FileName;

               //创建文件流,指定读取文件路径,和打开方式

               FileStream fs =newFileStream(path,FileMode.Open);

               //创建读取器,指定读取对象和使用编码

               StreamReader sr =new StreamReader(fs,Encoding.Default);

               //读取对象内容并写入文本框中

               textBox1.Text = sr.ReadToEnd();

               //关闭读取器和文件流

               sr.Close();

               fs.Close();

           }

    读取器对象的EndOfStream属性可指定是否读到末尾,返回值为bool类型,通常与对象的ReadLine方法配合使用。因此上边的读取对象内容还可以写作:

     while (!sr.EndOfStream)

               {

                   textBox1.Text += sr.ReadLine() +"\r\n";

               }               

5.写入文件

 跟读取文件类似:

 1)创建一个文件流  创建FileStream的对象。

 2)创建读取器     创建StreamWriter的对象。

 3)写入文件    参数可指定读取编码

 4)关闭读取器和文件流(可以调用对象的close方法,也可以将上面几步写入using中)

例:SaveFileDialog sfd=newSaveFileDialog ();

           sfd.Filter="文本文件|*.txt";

           if(sfd.ShowDialog()==DialogResult.OK)

           {

               //创建文件流,指定保存路径和保存方式为创建新文件覆盖旧文件

               FileStream fs =new FileStream(sfd.FileName,FileMode.Create);

               //创建写入器,指定写入对象和使用编码

               StreamWriter sw =new StreamWriter(fs,Encoding.Default);

               //写入文件

               sw.Write(textBox1.Text);

               //关闭写入器和文件流

               sw.Close();

               fs.Close();               

           }

注意:文件流的操作必须记得关闭对象,而且关闭顺序必须是先读取或写入器,然后才是文件流对象,不然可能发生丢失内容的错误。

 

原创粉丝点击