簡體   English   中英

用C#復制非常慢

[英]Copy in c# is very slow

我正在嘗試使用循環和CopyTo方法復制很多文件。 復制非常慢。 abot每分鍾10 mb! (與鼠標右鍵和復制相反)。

是否有其他替代方法可以使用呢?

我認為這會有所幫助:

File.Copy與手動FileStream.Write用於復制文件

它還說明了為什么復印功能很慢。

是的,使用FileStream進行相應的緩沖。 舉例來說,應該遵循以下思路:

using (var inputStream = File.Open(path, FileMode.Read),
    outputStream = File.Open(path, FileMode.Create))
{
    var bufferRead = -1;
    var bufferLength = 4096;
    var buffer = new byte[bufferLength];

    while ((bufferRead = inputStream.Read(buffer, 0, bufferLength)) > 0)
    {
        outputStream.Write(buffer, 0, bufferRead);
    }
}

相應地調整bufferLength 您可能會在此基礎上構建一些東西來提高其總體速度,但是稍作調整仍然應該可以提供足夠的改進。

復制文件最快(最方便)的方法可能是File.Copy 您沒有使用它的原因嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM