问题描述
|
我正在尝试使用循环和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,bufferLength)) > 0)
{
outputStream.Write(buffer,bufferRead);
}
}
相应地调节ѭ2。您可能会围绕此基础构建一些东西来提高其整体速度,但是稍作调整仍然应该可以提供足够的改进。
, 我认为这会有所帮助:
File.Copy与手动FileStream.Write用于复制文件
它还说明了为什么复印功能慢。
, 最快(最方便)的复制文件的方法大概是3英镑。您没有使用它的原因吗?