你的位置:首页 > ASP.net教程

[ASP.net教程]C# 大文件的复制方法


如何复制读取大文件,也许困惑了很多人很长时间,这个不知道怎么搞,的确让人头疼欲裂,知道了你就才发现原来那么简单,话不多说,直入正题````

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(),调用这个方法就可以了······