C# 复制文件时如何显示标准进度对话框?

C# 复制文件时如何显示标准进度对话框?,c#,file-io,filestream,progressdialog,shell32,C#,File Io,Filestream,Progressdialog,Shell32,Windows在复制文件时有一个很好的对话框,它显示了进度。当我从C复制文件时,我想重新使用这个对话框。我可能需要一些P/Invoke调用,有人能告诉我怎么做吗 我知道在VisualBasic名称空间中,My.Computer.FileSystem.CopyDirectory函数也提供了一个对话框,我可以从C中使用,但该对话框与实际对话框略有不同。复制文件时是否要使用完全相同的对话框?cz您可以使用ProgressBar和BackgroundWorker来做同样的事情。有一个ProgressBa

Windows在复制文件时有一个很好的对话框,它显示了进度。当我从C复制文件时,我想重新使用这个对话框。我可能需要一些P/Invoke调用,有人能告诉我怎么做吗


我知道在VisualBasic名称空间中,My.Computer.FileSystem.CopyDirectory函数也提供了一个对话框,我可以从C中使用,但该对话框与实际对话框略有不同。

复制文件时是否要使用完全相同的对话框?cz您可以使用ProgressBar和BackgroundWorker来做同样的事情。有一个ProgressBar可以获取从1到100的值。您需要将其与计时器/线程一起使用,以使其看起来是活动的。我不需要复制API,但是如果您可以获得当前的复制进度,那么您可以相应地设置进度条。和/或是要求windows shell执行复制操作的方法-如果您不抑制对话框,它将负责显示对话框,但实现这一点将是一个有趣的COM互操作世界。@AlexJolig我知道我可以使用progressbar,但Win8对话框是非常高级的图表、时间估计。我不想重新实现所有这些逻辑。我找到了这篇文章:,其中包含了一个围绕SHFileOperation的包装器库。