Windows 具有出色的控件,可以同时显示进度和进度。它显示在文件复制、删除等的“更多详细信息”视图中。例如:
我不想要文件复制对话框。我想要其中的控件,用于文件副本以外的目的。例如,视频编码进度。
可以使用这个控件吗?我似乎在任何地方都找不到它,而且我的搜索因不知道确切地称呼它而感到沮丧!我的最终目的地将是 C#/.NET。
答案可能是,但您可能不想使用那种精确的控制。原因是它是一个操作系统控件,因此可能会在没有警告的情况下进行更改。如果他们愿意,微软可以在下周修补它(他们不太可能但仍然如此)。您可能想环顾四周,看看是否有人在出售这样的控件。
另一种方法是使用 COM 触发 shell 为您进行复制,虽然很烦人,但不会被修补。它还具有版本独立的优点。
OP 已经明确表示他只是在寻找控件的进度部分而不是文件副本。因此,我对通过 COM 使用 shell 的建议是无效的。最好的选择是要么购买这样的控制......或者在最坏的情况下自己动手。
您可以使用 Microsoft.VisualBasic.Devices.Computer 类。
using Microsoft.VisualBasic.Devices;
Computer comp = new Computer();
comp.FileSystem.CopyFile(sourceFileName, destinationFileName, UIOption.AllDialogs, UICancelOption.DoNothing);
您将需要添加对 Microsoft.VisualBasic 的引用。