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

时间:2010-04-01 15:32:44

标签: .net windows filesystems copy

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

提前致谢。

6 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

Google for IProgressDialog - 这是一个为您提供所需功能的界面

答案 3 :(得分:0)

也许您会在Windows API Code Pack

找到所需的功能

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

答案 4 :(得分:0)

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

但这不一定是一项艰巨的任务:

  • 如果您有VS2005,请在64位系统上解除位于VS2005ImageLibrary.zip的{​​{1}}或在32位系统上解压缩C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary

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

  • 选择其中一个动画GIF。

  • 创建一个带有图片框的对话框。将GIF分配到图片框的C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary属性。

  • 在动画下方添加标签,以指定要复制的文件。

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

答案 5 :(得分:-3)

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