【问题标题】:.NET: How to copy files using Windows "Copy Files" dialog.NET:如何使用 Windows“复制文件”对话框复制文件
【发布时间】:2011-02-03 10:20:15
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: .net windows filesystems copy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在 .NET 中,您可以制作自己的对话框。

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

      • 如果您有 VS2005,则解压缩位于 64 位系统上的 C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary 或 32 位系统上的 C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibraryVS2005ImageLibrary.zip

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

      • 选择其中一个动画 GIF。

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 可能是 VB.NET 中保存最完好的秘密之一。
        【解决方案4】:

        也许您会在Windows API Code Pack 找到所需的功能

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-04-26
              • 2013-05-27
              • 1970-01-01
              • 1970-01-01
              • 2011-10-04
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多