标签:
如何复制读取大文件,也许困惑了很多人很长时间,这个不知道怎么搞,的确让人头疼欲裂,知道了你就才发现原来那么简单,话不多说,直入正题````
static void Main(string[] args) { bool b= CopyFile(@"D:\360安全浏览器下载\2.avi", @"D:\360安全浏览器下载\3.avi"); if(b) { Console.WriteLine("复制成功"); } else { Console.WriteLine("复制失败"); } Console.ReadKey(); } /// <summary> /// 大文件多次复制文件 true:复制成功 false:复制失败 /// </summary> /// <param name="soucrePath">原始文件路径</param> /// <param name="targetPath">复制目标文件路径</param> /// <returns></returns> public static bool CopyFile(string soucrePath, string targetPath) { try { //读取复制文件流 using (FileStream fsRead = new FileStream(soucrePath, FileMode.Open, FileAccess.Read)) { //写入文件复制流 using (FileStream fsWrite = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024 * 2]; //每次读取2M //可能文件比较大,要循环读取,每次读取2M while (true) { //每次读取的数据 n:是每次读取到的实际数据大小 int n = fsRead.Read(buffer, 0, buffer.Count()); //如果n=0说明读取的数据为空,已经读取到最后了,跳出循环 if (n == 0) { break; } //写入每次读取的实际数据大小 fsWrite.Write(buffer, 0, n); } } } return true; } catch (System.Exception ex) { return false; } }
其实就是一个方法CopyFile(),调用这个方法就可以了······
标签:
原文地址:http://www.cnblogs.com/sxw117886/p/5640903.html