A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李栋Jelly 中级黑马   /  2012-11-6 19:52  /  3887 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

复制文件   openFileDialog

首先得先实例化一个openFileDialog对象,然后弹出选择框,如果点击打开按钮,则打开,否则不做操作
选择文件时可以定义文件的初始目录(InitialDirectory)和选择文件过滤器(Filter)
  1. OpenFileDialog ofd = new OpenFileDialog();//实例化对象
  2. ofd.InitialDirectory = @"D:\";   //选择文件的起始目录
  3. ofd.Filter = "文本文件|*.txt|应用程序文件|*.exe|所有文件|*.*";//文件过滤器
  4. if (ofd.ShowDialog() == DialogResult.OK)   //判断用户点击了打开还是取消按钮     ShowDialog()的返回值为DialogResult类型
  5. {
  6.     //点击了打开按钮
  7.     string s = openFileDialog1.FileName;
  8.     //点取消则不做操作
  9. }
复制代码
保存文件   saveFileDialog

同复制文件,需要实例化一个对象,[初始化文件目录和选择文件过滤器],判断用户点击了保存按钮还是取消
然后用File类的Copy方法将所选文件保存
  1. saveFileDialog sfd = new saveFileDialog();
  2. sfd.InitialDirectory = @"D:\";   //选择文件的起始目录
  3. sfd.Filter = "文本文件|*.txt|应用程序文件|*.exe|所有文件|*.*";//文件过滤器
  4. if (sfd.ShowDialog() == DialogResult.OK)
  5. {
  6.     //点击了保存按钮
  7.     File.Copy(ofd.FileName, sfd.FileName, true);  //第一个参数为选择的文件名路径,第二个为保存的文件名路径,第三个设置文件是否可以覆盖
  8.     MessageBox.Show("复制成功");
  9. }
复制代码
复制整个文件夹下的子文件  FolderBrowserDialog

先实例化一个对象,弹出两次对话框,一次为所要复制的文件夹路径,一次为所要保存的文件夹路径,分别赋值给两个string类型变量,然后获取文件夹下得所有文件(Directory.GetFiles())
  1. string sFolder, gFolder;
  2. FolderBrowserDialog fbd = new FolderBrowserDialog();
  3. fbd.Description = "请选择要复制的文件夹:";
  4. if (fbd.ShowDialog() == DialogResult.OK)
  5. {
  6.     //点击了确定
  7.     sFolder = fbd.SelectedPath;
  8.     fbd.Description = "请选择要复制到的文件夹:";
  9.     if (fbd.ShowDialog() == DialogResult.OK)
  10.     {
  11.        gFolder = fbd.SelectedPath;
  12.        string[] files = Directory.GetFiles(sFolder); //获取选择目录下的所有子文件
  13.        foreach (string filepath in files)
  14.        {
  15.            string gFileName = filepath.Substring(filepath.LastIndexOf("\\") + 1);//截取文件目录下的文件名
  16.            string gDirectory = string.Format(gFolder + "\\" + gFileName);  //拼接所要复制到的目录
  17.            File.Copy(filepath,gDirectory , true);//复制
  18.        }
  19.      }
  20. }
复制代码
读取/写入文件  

步骤:
1.声明一个文件流对象   FileStream
2.创建读取/写入器      StreamReader/StreamWriter
3.读/写操作            EndOfStream属性:指示是否读到末尾(ReadLine)       ReadToEnd / Write
4.关闭读取/写入器      Close()
5.关闭操作对象         Close()

文件流直接指向选择的文件,对文件操作是StreamReader/StreamWriter实现的
结束之前要有关闭读取/写入器和关闭操作对象的习惯

声明文件流时如果不需要配置文件名,读写模式...   就可以直接创建写入器(StreamWriter ),系统会自动new一个文件流对象(FileStream )

读取
  1. OpenFileDialog Open = new OpenFileDialog();
  2. Open.Title = "打开文件";
  3. Open.Filter = "文本文件|*.txt|所有文件|*.*";
  4. if (Open.ShowDialog() == DialogResult.OK)
  5. {//点击了打开文件
  6.    //声明一个文件流对象 FileStream
  7.    FileStream fs = new FileStream(Open.FileName, FileMode.Open, FileAccess.Read, FileShare.None); //括号内参数(选择的文件名,打开方式,文件的访问权限,文件的共享方式)
  8.    //创建读取器
  9.    StreamReader sr = new StreamReader(fs,Encoding.Default);//Encoding 编码方式  Default为默认编码
  10.    //读操作
  11.    //第一种方法,直接读取到末尾
  12.    txtText.Text = sr.ReadToEnd();
  13.    //第二种方法,一次读取一行
  14.    //while(sr.EndOfStream == false)  //EndOfStream指示当前流的位置是否在流的末尾
  15.    //{
  16.    //    string line = sr.ReadLine();//读取一行
  17.    //    txtText.Text = txtText.Text + line + "\r\n";
  18.    //}
  19.    //关闭读取器
  20.    sr.Close();
  21.    //关闭操作对象  释放对所操作文件的锁定
  22.    fs.Close();
  23. }
复制代码
写入
  1. SaveFileDialog Save = new SaveFileDialog();
  2. Save.Title = "保存文件";
  3. Save.Filter = "文本文件|*.txt|所有文件|*.*";
  4. if (Save.ShowDialog() == DialogResult.OK)
  5. {//点击了保存按钮
  6.    //声明一个文件流对象 FileStream
  7.    FileStream fs = new FileStream(Save.FileName, FileMode.Create);
  8.    //2.创建写入器
  9.    StreamWriter sw = new StreamWriter(fs, Encoding.Default);
  10.    //3.写操作
  11.    sw.Write(txtText.Text);
  12.    //关闭写入器器
  13.    sw.Close();
  14.    //关闭操作对象  释放对所操作文件的锁定
  15.    fs.Close();
  16. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马