2013-06-18 67 views
2

我使用C++ Builder和SHFileOperation從網絡位置下載應用程序(它的文件夾)。 WinApi有它自己的進度條,但我需要一個具有進度條的自定義表單。SHFileOperation copy with custom progress bar/C++ builder

我該如何跟蹤複製進度,以便我可以擁有自己的進度條? 一個簡短的例子將定義幫助。謝謝。

回答

4

SHFileOperation不提供您接收進度回調的方法。您可以接受系統提供的進度反饋對話框,也可以不進行任何進度報告。

有支持進度回調的CopyFileEx。但是,這隻適用於複製單個文件而不是整個目錄。

在Vista和更高版本上有IFileOperation這是SHFileOperation的替代品。該接口比SHFileOperation更有能力。您可以使用IFileOperation複製整個目錄並接收進度通知。

如果您需要支持XP或更早版本,那麼您需要編寫自己的目錄複製例程。您將必須計算要複製的文件的總大小,然後使用CopyFileEx執行每個單獨的文件副本。您將收到來自CopyFileEx的進度回調,然後將其轉化爲應用程序顯示的整體進度事件。

+0

我會看看IFileOperation。不知道,謝謝。 – apo