[英]Copy in c# is very slow
我正在嘗試使用循環和CopyTo方法復制很多文件。 復制非常慢。 abot每分鍾10 mb! (與鼠標右鍵和復制相反)。
是否有其他替代方法可以使用呢?
是的,使用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.