[英]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.