如何復制讀取大文件,也許困惑了很多人很長時間,這個不知道怎麼搞,的確讓人頭疼欲裂,知道了你就才發現原來那麼簡單,話不多說,直入正題````
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(),調用這個方法就可以了······