【发布时间】:2011-02-03 10:20:15
【问题描述】:
.NET:如何使用 Windows“复制文件”对话框复制文件。我需要批量复制多个文件。是否存在任何 .NET 2.0 库/方法允许我以跨平台方式执行此操作而无需调用 Windows 平台特定库。
提前致谢。
【问题讨论】:
标签: .net windows filesystems copy
.NET:如何使用 Windows“复制文件”对话框复制文件。我需要批量复制多个文件。是否存在任何 .NET 2.0 库/方法允许我以跨平台方式执行此操作而无需调用 Windows 平台特定库。
提前致谢。
【问题讨论】:
标签: .net windows filesystems copy
Google for IProgressDialog - 这是一个为您提供所需功能的界面
【讨论】:
在 .NET 中,您可以制作自己的对话框。
虽然这不一定是一项艰巨的任务:
如果您有 VS2005,则解压缩位于 64 位系统上的 C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary 或 32 位系统上的 C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary 的 VS2005ImageLibrary.zip。
解压 zip 文件后,会出现文件复制对话框动画的多个 GIF 动画。这些也有 .AVI 格式。
选择其中一个动画 GIF。
创建一个带有图片框的对话框。将 GIF 分配给图片框的 image 属性。
在动画下方添加标签以指定要复制的文件。
根据需要使用更新对话框的线程来驱动文件复制操作。
【讨论】:
SHFileOperation,标准.NET框架很好支持。添加对 Microsoft.VisualBasic.dll 的引用并使用 Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory() 方法。有几个重载可供您控制 UI 的外观以及如何处理错误。
【讨论】:
也许您会在Windows API Code Pack 找到所需的功能
如果一切都失败了,它可能会以丑陋的方式工作:创建一个不可见的 Windows 资源管理器窗口,并对其进行操作以启动复制过程。
【讨论】:
问题在于它不是真正的“Windows 的复制文件对话框”,而是资源管理器的对话框。因此,它必须找到一种以编程方式控制资源管理器的方法。 (可能通过 COM 或 WMI 实现)
【讨论】:
为了使用“Windows '复制文件'对话框”,您需要调用“Windows 平台特定库”。
【讨论】: