我正在尝试使用循环和CopyTo方法复制许多文件。复制速度非常慢。大约每分钟10mb!(与在鼠标右键单击并复制形成对比)。
有没有其他更快的选择呢?
发布于 2011-06-23 18:28:11
发布于 2011-06-23 18:29:45
可以,请使用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。您可能会围绕这一点构建一些东西来提高其整体速度,但稍微调整一下应该仍然可以提供足够显著的改进。
发布于 2011-06-23 18:50:34
复制文件最快(也是最方便)的方法可能是File.Copy。你不使用它有什么原因吗?
https://stackoverflow.com/questions/6452462
复制相似问题