C\#FileStream 큰 파일 복사

본 논문 의 사례 는 C\#FileStream 에서 큰 파일 을 복사 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
총 메모리 비용 을 절약 하기 위해 파일 의 작은 부분 을 복사 하 는 것 이다.물론 이 컴퓨터 의 복사 도.NET 내부 의 System.IO.File.copy 방법 을 사용 할 수 있다.

/// <summary>

///     

/// </summary>

/// <param name="fromFile">      </param>

/// <param name="toFile">      </param>

 /// <param name="lengthEachTime">       </param>

    private void CopyFile(string fromFile, string toFile, int lengthEachTime)

    {

      FileStream fileToCopy = new FileStream(fromFile, FileMode.Open, FileAccess.Read);

      FileStream copyToFile = new FileStream(toFile, FileMode.Append, FileAccess.Write);

      int lengthToCopy;

      if (lengthEachTime < fileToCopy.Length)//      ,              

      {

        byte[] buffer = new byte[lengthEachTime];

        int copied = 0;

        while (copied <= ((int)fileToCopy.Length - lengthEachTime))//      

        {

          lengthToCopy = fileToCopy.Read(buffer, 0, lengthEachTime);
          fileToCopy.Flush();
          copyToFile.Write(buffer, 0, lengthEachTime);
          copyToFile.Flush();
          copyToFile.Position = fileToCopy.Position;
          copied += lengthToCopy;

        }

        int left = (int)fileToCopy.Length - copied;//      
        lengthToCopy = fileToCopy.Read(buffer, 0, left);
        fileToCopy.Flush();
        copyToFile.Write(buffer, 0, left);
        copyToFile.Flush();

      }

      else//      ,              

      {

        byte[] buffer = new byte[fileToCopy.Length];
        fileToCopy.Read(buffer,0,(int)fileToCopy.Length);
        fileToCopy.Flush();
        copyToFile.Write(buffer, 0, (int)fileToCopy.Length);
        copyToFile.Flush();

      }

      fileToCopy.Close();
      copyToFile.Close();

    }

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기