.NET:如何使用Windows“复制文件”对话框复制文件

.NET:如何使用Windows复制文件”对话框复制文件。 我需要批量复制多个文件。 是否存在任何.NET 2.0库/方法,允许我以跨平台的方式执行它,而无需调用特定于Windows平台的库。

提前致谢。

Solutions Collecting From Web of ".NET:如何使用Windows“复制文件”对话框复制文件"

为了使用“Windows”复制文件“对话框”,您将需要调用“Windows平台特定的库”。

SHFileOperation,它是由标准的.NET框架很好的支持。 添加对Microsoft.VisualBasic.dll的引用,并使用Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory()方法。 有几个重载可用来控制UI的外观以及如何处理错误。

谷歌IProgressDialog – 这是一个接口,为您提供您所请求的功能

也许你会在Windows API代码包中找到所需的功能

如果一切都失败了,它可能会以丑陋的方式工作:创建一个不可见的Windows资源管理器窗口,并操纵它来启动复制过程。

在.NET中,您可以创建自己的对话框。

虽然这不一定是一个困难的任务:

  • 如果你有VS2005,然后解压缩位于C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary在64位系统或C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary一个32位系统。

  • 一旦你解压zip文件,会有几个动画GIF的文件复制对话框的动画。 这些也以.AVI格式。

  • 选择一个动画GIF。

  • 创建一个对话框上的图片框。 将GIF分配给图片框的image属性。

  • 在动画下面添加一个标签以指定要复制的文件。

  • 根据需要使用线程更新对话框来驱动文件复制操作。

问题是它不是真的“Windows的复制文件对话框”,它是资源管理器的对话框。 所以,它必须找到一种以编程方式控制资源管理器的方法。 (可能通过COM或WMI)