这相当于一个学习笔记吧,加强自己对FileStream的掌握。
1.界面设计的很简单 两个button 两个textbox 一个progressbar(读取进度条)
2.界面设计完成了,就开始代码的编写了
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"C:\Users\YIXICHEN\Desktop";
//对话框头部
ofd.Title = "请选择文件";
//文件类型
ofd.Filter = "所有文件|*.*";
ofd.ShowDialog();
textBox1.Text = ofd.FileName.Trim();
}
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = @"C:\Users\YIXICHEN\Desktop";
sfd.Title = "请选择保存文件";
sfd.Filter = "所有文件|*.*";
sfd.ShowDialog();
textBox2.Text = sfd.FileName.Trim();
//使用using 释放资源
//读取文件内容
using (FileStream fsRead=new FileStream(textBox1.Text.Trim(),FileMode.OpenOrCreate,FileAccess.Read))
{
//写入文件内容
using (FileStream fsWrite=new FileStream(textBox2.Text.Trim(),FileMode.OpenOrCreate,FileAccess.Write))
{
//设置progressBar的大小
progressBar1.Maximum=(int)fsRead.Length;
//为了我们给他设置每次读取的大小 5M
byte[] buffer = new byte[1024 * 1024 * 5];
while (true)
{
//每次读取r个字节
int r = fsRead.Read(buffer, 0, buffer.Length);
//当内容不存在的时候 说明内容读取完了
if(r==0){
break;
}
fsWrite.Write(buffer,0,r);
//当前读取进度
progressBar1.Value =(int) fsWrite.Length;
}
MessageBox.Show("保存成功");
}
}
}
效果图:
这个简单的保存功能就完成了,欢迎各位大佬指正。谢谢