using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace CopyFileExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void SelectButton_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择要复制的文件";
ofd.InitialDirectory = @"C:\Users\Sudo\桌面";
ofd.Filter = "所有文件|*.*";
ofd.ShowDialog();
SourceFileTextBox.Text = ofd.FileName;
}
private void SaveButton_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "请选择要保存文件路径";
sfd.InitialDirectory = @"C:\Users\Sudo\桌面";
sfd.Filter = "所有文件|*.*";
sfd.ShowDialog();
DestFileTextBox.Text = sfd.FileName;
//先读取 再写入
using (FileStream fsRead = new FileStream(SourceFileTextBox.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Read))
{
using(FileStream fsWrite = new FileStream(DestFileTextBox.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Write))
{
//设置进度条最大值
SaveFileProgressBar.Maximum = (int)fsRead.Length;
//设置缓冲区大小
byte[] buffer = new byte[1024 * 1024 * 3];
while (true)
{
//读
int r = fsRead.Read(buffer, 0, buffer.Length);
if (r==0)
{
break;
}
//写
fsWrite.Write(buffer, 0, r);
//进度条进度值与写入数据大小关联
SaveFileProgressBar.Value =(int)fsWrite.Length;
}
MessageBox.Show("保存成功!");
}
}
}
}
}
C#通过FileStream复制文件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- WPF/C#学习笔记.2 Xml格式文件读取与通过XmlDataProvider以及资源模板“动态”绑定到Tree...
- NDK开发流程 1.安装NDK 下载完成后 2.配置然后你会在local.properties文件中看到(或者自己...