C#复制文件的问题

这段C#代码展示了如何使用FileStream和BinaryReader/BinaryWriter来复制文件。通过打开源文件,读取其内容到字节数组,然后写入到目标文件中,实现了文件的完整复制。


[ 标签: c#复制文件 ]
我想写一个复制文件的小程序(就是 自己实现File.Copy(arg1,arg2)的功能),但是为什么不能复制成功呢,代码如下,请各位帮忙看看,问题出在那

private void Copy()
{
FileStream fsOpen = new FileStream(txtOpen.Text, FileMode.Open);
FileStream fsSave = new FileStream(txtSave.Text, FileMode.Create);
StreamReader sr = new StreamReader(fsOpen, Encoding.UTF7);
StreamWriter sw = new StreamWriter(fsSave, Encoding.UTF7);

long lenth = sr.BaseStream.Length;
int i = 0;
char[] bytes = new char[256];
while (!sr.EndOfStream)
{
i = sr.Read(bytes, 0, 256);
sw.Write(bytes, 0, i);
}

sw.Flush();
sw.Close();
sr.Close();
fsSave.Close();
fsOpen.Close();
}
李小虾 回答:1 人气:6 解决时间:2011-03-30 11:07
满意答案
好评率:0%
StreamReader sr = new StreamReader(fsOpen, Encoding.Default);
StreamWriter sw = new StreamWriter(fsSave, sr.CurrentEncoding);
提问人的追问 2011-03-30 10:16
我试过了,不行, Encoding的所有枚举我都试过了,复制后的文件打不开
团队的补充 2011-03-30 10:52

private void Copy()
{
FileStream fsOpen = new FileStream(txtOpen.Text, FileMode.Open);
FileStream fsSave = new FileStream(txtSave.Text, FileMode.Create);

byte[] data = new byte[fsOpen.Length];

fsOpen.Read(data, 0, (int)fsOpen.Length);

fsSave.Write(data, 0, (int)fsOpen.Length);

fsSave.Close();
fsOpen.Close();
}

提问人的追问 2011-03-30 11:06

BinaryReader sr = new BinaryReader(fsOpen, Encoding.ASCII);
BinaryWriter sw = new BinaryWriter(fsSave, Encoding.ASCII);

int i = 0;
byte[] bytes = new byte[256];
while (true)
{
i = sr.Read(bytes, 0, 256);
sw.Write(bytes, 0, i);
if (i < 256)
{
break;
}
}

找到答案,谢谢你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值