学到如下复制多媒体方法:
//设置文件路径
string pathOld = @"i:\1.wav";
string pathNew = @"i:\77.wav";
//先读取
byte[] buff = File.ReadAllBytes(pathOld);
//再写入
File.WriteAllBytes(pathNew, buff );
//结束
后来有人给一部分这样代码
byte[] buffer=new byte[1024*1024*5];
while (true)
{
File.WriteAllBytes(pathNew, buffer);
}
看不懂呀。完整代码是什么呀,这样做好处是什么?
而且buffer数组固定大小,如果文件很大呢,放不下呢?
虽然循环了,但是buffer能一直接上面的头吗?‘
求解
------解决思路----------------------
只需要复制的话用File.Copy吧
------解决思路----------------------
这种方法是错误的。如果你的文件有1G,那么这句话会把1G都读到内存里。
第二种方法思路是对的,一点一点的读,再一点一点的写。但是代码不完整,while里面得有读取源文件的代码,每次读取5KB到byte数组,再写到目的段文件。还缺跳出语句。
最好的办法,就是用楼上说的,file.copy, 省事省心。
------解决思路----------------------
直接用File.Copy就可以了。
------解决思路----------------------
File.Copy是简单,不过没法监控过程吧,万一用户觉得太慢,不想等了,想取消呢,还得关闭程序重来?
而且复制了多少了也不知道,都在后台
简单的用File.Copy,那不如让用户自己上磁盘里操作得了,还弄个软件干啥
------解决思路----------------------
这个时候可以考虑用CopyFileEx。