C# 大文件的复制方法

Posted 幻影星辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(),调用这个方法就可以了······

以上是关于C# 大文件的复制方法的主要内容,如果未能解决你的问题,请参考以下文章

记录C#常用的代码片段

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

c#上传大文件方法

VSCode自定义代码片段13——Vue的状态大管家

VSCode自定义代码片段13——Vue的状态大管家

VSCode自定义代码片段13——Vue的状态大管家