Tag: 复制文件信息

我可以使用FileInfo.CopyTo()在.NET中显示文件复制进度?

我在c#(.NET 2.0 Framework)中创build了一个复制实用程序,用于复制文件,目录和recursion子目录等。该程序具有一个显示正在复制的当前文件的GUI,当前文件编号(序列),总数要复制的文件以及复制操作完成的百分比。 还有一个进度条,即基于当前文件/总文件。 我的问题与复制大文件有关。 我一直无法find一个方法来指示一个大文件的总复制进度(使用我当前的类结构utilitz FileInfo.CopyTo方法)。 作为一种解决方法,我已经将文件复制操作和GUI显示分离到各自的线程,并设置了一个可视提示来显示正在完成的工作。 至less用户知道程序没有被冻结,并且仍在复制文件。 能够根据字节总数显示进度或者从FileInfo.CopyTo方法触发某种types的事件将会更好,该方法指示从当前文件复制的总字节数。 我知道FileInfo.Length属性,所以我敢肯定,有一种方法MacGuyver我自己的事件是基于这个,并在阅读更新(可能基于检查FileInfo的东西的GUI一侧的处理程序。目标对象的长度属性使用某种types的定时器?)。 有没有人知道一种方法来做到这一点,我俯瞰。 如果我能避免它,我宁愿不重写我的类通过stream复制字节,并跟踪它(虽然我想我可能会坚持走这条路线)。 提前致谢 PS – 我现在坚持使用.NET 2.0框架,所以任何需要> = 3.0以上function的解决scheme都不适合我。 PPS – 我对任何.NET语言的解决scheme都很开放,不仅仅是c#。