.NET:如何使用Windows“复制文件”对话框复制文件。我需要批量复制多个文件。是否存在允许我以跨平台方式执行它而不调用Windows平台特定库的.NET 2.0库/方法。
提前致谢。
答案 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资源管理器窗口,并对其进行操作以启动复制过程。
答案 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实现)