我使用 C++ Builder 和 SHFileOperation 从网络位置下载应用程序(其文件夹)。WinApi 有自己的进度条,但我需要一个带有进度条的自定义表单。
如何单独跟踪复制进度,以便拥有自己的进度条?一个简短的例子肯定会有所帮助。谢谢。
我使用 C++ Builder 和 SHFileOperation 从网络位置下载应用程序(其文件夹)。WinApi 有自己的进度条,但我需要一个带有进度条的自定义表单。
如何单独跟踪复制进度,以便拥有自己的进度条?一个简短的例子肯定会有所帮助。谢谢。
SHFileOperation
不为您提供接收进度回调的方法。您可以接受系统提供的进度反馈对话框,也可以完全不接受任何进度报告。
有CopyFileEx
哪个支持进度回调。但这仅适用于复制单个文件而不是整个目录。
在 Vista 和更高版本上IFileOperation
,有SHFileOperation
. 这个接口比SHFileOperation
. 您可以使用IFileOperation
复制整个目录,并接收进度通知。
如果您需要支持 XP 或更早版本,则需要编写自己的目录复制例程。您必须计算要复制的文件的总大小,然后使用CopyFileEx
. 您将收到进度回调CopyFileEx
,然后将它们转换为您的应用程序要显示的整体进度事件。