2011-06-23 83 views
0

我想使用循環和CopyTo方法複製大量文件。 副本非常慢。每分鐘10 MB! (與鼠標右鍵單擊並複製相反)。在c#中複製很慢

有什麼替代品可以使用,哪個更快?

+1

@Jon加鹽... – evilone

+1

請閱讀常見問題的指導如何改善您的問題的措辭http://stackoverflow.com/faq – Pooli

+1

或者也許一些雞。 – RPM1984

回答

2

是的,使用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相應。你可能會在這方面建立一些東西來提高整體速度,但稍微調整一下仍然應該提供足夠的改進。

1

複製文件最快(也是最方便)的方法可能是File.Copy。你有沒有使用它的原因?