首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中复制非常慢

在c#中复制非常慢
EN

Stack Overflow用户
提问于 2011-06-23 18:18:32
回答 3查看 5.6K关注 0票数 0

我正在尝试使用循环和CopyTo方法复制许多文件。复制速度非常慢。大约每分钟10mb!(与在鼠标右键单击并复制形成对比)。

有没有其他更快的选择呢?

EN

回答 3

Stack Overflow用户

发布于 2011-06-23 18:28:11

我认为这会有所帮助:

File.Copy vs. Manual FileStream.Write For Copying File

它还解释了复制功能缓慢的原因。

票数 2
EN

Stack Overflow用户

发布于 2011-06-23 18:29:45

可以,请使用FileStream进行相应的缓冲。举个例子,类似的东西应该会给你一个概念:

代码语言:javascript
复制
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。您可能会围绕这一点构建一些东西来提高其整体速度,但稍微调整一下应该仍然可以提供足够显著的改进。

票数 2
EN

Stack Overflow用户

发布于 2011-06-23 18:50:34

复制文件最快(也是最方便)的方法可能是File.Copy。你不使用它有什么原因吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6452462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档