复制文件 openFileDialog
首先得先实例化一个openFileDialog对象,然后弹出选择框,如果点击打开按钮,则打开,否则不做操作
选择文件时可以定义文件的初始目录(InitialDirectory)和选择文件过滤器(Filter)- OpenFileDialog ofd = new OpenFileDialog();//实例化对象
- ofd.InitialDirectory = @"D:\"; //选择文件的起始目录
- ofd.Filter = "文本文件|*.txt|应用程序文件|*.exe|所有文件|*.*";//文件过滤器
- if (ofd.ShowDialog() == DialogResult.OK) //判断用户点击了打开还是取消按钮 ShowDialog()的返回值为DialogResult类型
- {
- //点击了打开按钮
- string s = openFileDialog1.FileName;
- //点取消则不做操作
- }
复制代码 保存文件 saveFileDialog
同复制文件,需要实例化一个对象,[初始化文件目录和选择文件过滤器],判断用户点击了保存按钮还是取消
然后用File类的Copy方法将所选文件保存- saveFileDialog sfd = new saveFileDialog();
- sfd.InitialDirectory = @"D:\"; //选择文件的起始目录
- sfd.Filter = "文本文件|*.txt|应用程序文件|*.exe|所有文件|*.*";//文件过滤器
- if (sfd.ShowDialog() == DialogResult.OK)
- {
- //点击了保存按钮
- File.Copy(ofd.FileName, sfd.FileName, true); //第一个参数为选择的文件名路径,第二个为保存的文件名路径,第三个设置文件是否可以覆盖
- MessageBox.Show("复制成功");
- }
复制代码 复制整个文件夹下的子文件 FolderBrowserDialog
先实例化一个对象,弹出两次对话框,一次为所要复制的文件夹路径,一次为所要保存的文件夹路径,分别赋值给两个string类型变量,然后获取文件夹下得所有文件(Directory.GetFiles())- string sFolder, gFolder;
- FolderBrowserDialog fbd = new FolderBrowserDialog();
- fbd.Description = "请选择要复制的文件夹:";
- if (fbd.ShowDialog() == DialogResult.OK)
- {
- //点击了确定
- sFolder = fbd.SelectedPath;
- fbd.Description = "请选择要复制到的文件夹:";
- if (fbd.ShowDialog() == DialogResult.OK)
- {
- gFolder = fbd.SelectedPath;
- string[] files = Directory.GetFiles(sFolder); //获取选择目录下的所有子文件
- foreach (string filepath in files)
- {
- string gFileName = filepath.Substring(filepath.LastIndexOf("\\") + 1);//截取文件目录下的文件名
- string gDirectory = string.Format(gFolder + "\\" + gFileName); //拼接所要复制到的目录
- File.Copy(filepath,gDirectory , true);//复制
- }
- }
- }
复制代码 读取/写入文件
步骤:
1.声明一个文件流对象 FileStream
2.创建读取/写入器 StreamReader/StreamWriter
3.读/写操作 EndOfStream属性:指示是否读到末尾(ReadLine) ReadToEnd / Write
4.关闭读取/写入器 Close()
5.关闭操作对象 Close()
文件流直接指向选择的文件,对文件操作是StreamReader/StreamWriter实现的
结束之前要有关闭读取/写入器和关闭操作对象的习惯
声明文件流时如果不需要配置文件名,读写模式... 就可以直接创建写入器(StreamWriter ),系统会自动new一个文件流对象(FileStream )
读取- OpenFileDialog Open = new OpenFileDialog();
- Open.Title = "打开文件";
- Open.Filter = "文本文件|*.txt|所有文件|*.*";
- if (Open.ShowDialog() == DialogResult.OK)
- {//点击了打开文件
- //声明一个文件流对象 FileStream
- FileStream fs = new FileStream(Open.FileName, FileMode.Open, FileAccess.Read, FileShare.None); //括号内参数(选择的文件名,打开方式,文件的访问权限,文件的共享方式)
- //创建读取器
- StreamReader sr = new StreamReader(fs,Encoding.Default);//Encoding 编码方式 Default为默认编码
- //读操作
- //第一种方法,直接读取到末尾
- txtText.Text = sr.ReadToEnd();
- //第二种方法,一次读取一行
- //while(sr.EndOfStream == false) //EndOfStream指示当前流的位置是否在流的末尾
- //{
- // string line = sr.ReadLine();//读取一行
- // txtText.Text = txtText.Text + line + "\r\n";
- //}
- //关闭读取器
- sr.Close();
- //关闭操作对象 释放对所操作文件的锁定
- fs.Close();
- }
复制代码 写入- SaveFileDialog Save = new SaveFileDialog();
- Save.Title = "保存文件";
- Save.Filter = "文本文件|*.txt|所有文件|*.*";
- if (Save.ShowDialog() == DialogResult.OK)
- {//点击了保存按钮
- //声明一个文件流对象 FileStream
- FileStream fs = new FileStream(Save.FileName, FileMode.Create);
- //2.创建写入器
- StreamWriter sw = new StreamWriter(fs, Encoding.Default);
- //3.写操作
- sw.Write(txtText.Text);
- //关闭写入器器
- sw.Close();
- //关闭操作对象 释放对所操作文件的锁定
- fs.Close();
- }
复制代码 |