【问题标题】:Copy many files and directories using the system file progress dialog?使用系统文件进度对话框复制许多文件和目录?
【发布时间】:2014-01-20 17:17:25
【问题描述】:

我希望将许多文件或文件夹复制到不同的文件夹,但将其作为实用程序运行 - 即。我的应用程序启动该过程,就好像用户已将文件复制到剪贴板然后将它们粘贴到目标位置一样。
我在其他地方看到了复制目录或文件的答案,但在那个进度对话框下没有看到两者的混合。

【问题讨论】:

标签: c# windows shell pinvoke user-experience


【解决方案1】:

如果您要复制文件或目录,并让系统提供复制进度对话框,那么您正在寻找SHFileOperationIFileOperation

如果您希望支持 XP,那么您至少需要在该平台上使用 SHFileOperation。在我看来,此时您也可以在所有平台上使用SHFileOperation。另一方面,如果您准备忽略 XP,那么您可能应该使用IFileOperation

两者在 C# 中都很容易使用。对于SHFileOperation,您可以使用pinvoke.net 提供的p/invoke 声明。由于这是一个使用非常广泛且有用的功能,因此那里提供的 p/invokes 很有可能具有良好的质量。

对于IFileOperation,我对这些选项不太熟悉。这篇 MSDN 文章看起来很有前途:http://msdn.microsoft.com/en-us/magazine/cc163304.aspx

【讨论】:

  • 对于 OP,您可能还想查看 Windows API Code Pack,它包含 SHFileOperation 和其他 Windows 常用对话框的包装器。
  • 啊!我不知道 API 代码包包含它的包装器。谢谢!
  • Windows API 代码包不封装任何 SHFileOperation 或 IFileOperation ((
猜你喜欢
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2020-02-15
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多