C#.NET:复制,移动和删除文件进度

时间:2018-07-15 12:08:12

标签: c# .net

问题

我需要创建一个对话框,其中有两个进度条:一个用于总进度(如果复制/移动/删除了多个文件),另一个用于当前文件的进度。

我基本上需要某种方式来复制,移动和删除文件,并知道相应过程的进度,以便更新视觉效果。

我已经找到了有关复制问题here的问题,但这实际上无法移动,因为如果在同一磁盘上移动文件,通常不会复制文件,而是复制目录被改变。 (移动到其他磁盘会导致复制和删除)。我也不知道如何实现删除过程。

我已经尝试过的东西

好吧,考虑到我发布了复制过程解决方案的链接,我已经通过修改代码来解决复制部分(种类),使其适合我的需求。

要求什么?

一种了解复制,移动或删除一个文件的过程的方式。如果我知道这一点,我可以解决其余的问题。

谢谢

1 个答案:

答案 0 :(得分:0)

我曾经需要显示一个用于复制,移动和删除的进度条。复制过程很容易。您将计算基于字节。但是移动和删除呢?

我基于“合成字节”的进度。移动或删除的成本主要来自解决相关目录条目所需的磁盘搜索。因此,我将它们视为合成的字节数,大致相当于一个磁盘搜索。对于磁盘,寻道约为10ms。速度为100MB /秒,则综合成本为1MB。但是我认为操作系统可以有效地处理多个移动,因此,如果我没记错的话,我只是将移动/删除操作的成本提高了64KB。

进度条似乎相当合理,并且该概念非常适用于新的操作类型和新的磁盘类型(SSD)。

我希望这适用于您的情况。