黑马程序员技术交流社区
标题:
winform文件的复制,保存,读取,写入
[打印本页]
作者:
李栋Jelly
时间:
2012-11-6 19:52
标题:
winform文件的复制,保存,读取,写入
复制文件 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();
}
复制代码
作者:
许庭洲
时间:
2012-11-6 20:28
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2