zoukankan      html  css  js  c++  java
  • 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(),调用这个方法就可以了······

  • 相关阅读:
    moment.js获取当前日期是当年的第几周
    angulajs中引用chart.js做报表,修改线条样式
    moment算本月开始日期和结束日期
    TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)
    个人微信收款回调通知
    Winform,Wpf快捷键
    RemindMe
    数组循环左移p位
    RemindMe 说明
    双网卡同时上内外网
  • 原文地址:https://www.cnblogs.com/sxw117886/p/5640903.html
Copyright © 2011-2022 走看看