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

  • 相关阅读:
    [CF1342D] Multiple Testcases
    [CF448D] Multiplication Table
    [CF459C] Pashmak and Buses
    [CF766E] Mahmoud and a xor trip
    [CF35E] Parade
    [CF15C] Industrial Nim
    [CF9D] How many trees?
    [CF19B] Checkout Assistant
    [CF22D] Segments
    [CF21D] Traveling Graph
  • 原文地址:https://www.cnblogs.com/sxw117886/p/5640903.html
Copyright © 2011-2022 走看看