使用系统文件进度对话框复制许多文件和目录?

时间:2014-01-20 17:17:25

标签: c# windows shell pinvoke user-experience

我希望将许多文件或文件夹复制到不同的文件夹,但是将其作为实用程序运行 - 即。我的应用程序启动过程,就好像用户已将文件复制到剪贴板中然后将它们粘贴到目标中一样 我在其他地方看到了复制目录或文件的答案,但在这一个进度对话框下没有两者的混合。

1 个答案:

答案 0 :(得分:3)

如果您要复制文件或目录,并让系统提供了复制进度对话框,那么您正在寻找SHFileOperationIFileOperation

如果您希望支持XP,那么至少需要在该平台上使用SHFileOperation。在我看来,您可以在所有平台上使用SHFileOperation。另一方面,如果您准备忽略XP,那么您应该使用IFileOperation

两者都非常容易使用C#。对于SHFileOperation,您可以使用pinvoke.net中提供的p / invoke声明。由于这是一个非常广泛使用和有用的功能,所以p / invokes很有可能提供高质量的。

IFileOperation我不熟悉这些选项。这篇MSDN文章看起来很有希望:http://msdn.microsoft.com/en-us/magazine/cc163304.aspx