您的位置:首页 > 其它

文件操作(读取和写入)

2013-10-25 19:21 183 查看
l      命名空间和操作类

l      打开和保存文件对话框
l      读取和写入文件
1.引用命名空间和操作类
  命名空间:System.IO
  操作类:File
    相关方法:
1)File.Copy(string
sourceFileName, string destFileName,bool overwrite);复制文件,无返回值    参数:待复制的文件路径(含文件名),欲赋值到的文件路径(含文件名),是否覆盖)
例如:File.Copy(@"G:\入学考试\exam\exam.sln",@"G:\入学考试\exam\exam1.sln",true);
2)File.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 =new
FileStream(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();               

           }
注意:文件流的操作必须记得关闭对象,而且关闭顺序必须是先读取或写入器,然后才是文件流对象,不然可能发生丢失内容的错误。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息