IFileOperation 介面 (shobjidl_core.h)
公開方法以複製、移動、重新命名、建立和刪除Shell專案,以及提供進度和錯誤對話框的方法。 此介面會取代 SHFileOperation 函式。
繼承
IFileOperation 介面繼承自 IUnknown 介面。 IFileOperation 也有下列類型的成員:
方法
IFileOperation 介面具有這些方法。
備註
Shell 專案可以是命名空間中的任何物件,包括檔案系統物件,例如檔案和資料夾,也可以是虛擬物件。 在 IFileOperation 方法主題中,「專案」一詞用來一般參考任何命名空間物件。
IFileOperation 提供許多優於舊 版 SHFileOperation 函式的優點。
- 使用 IShellItem 來識別專案,而不是字串路徑。 SHFileOperation 需要路徑和目的地字串,以兩個 Null 字元結束,而不是標準單一 Null 字元,而該字元本身用來分隔字串中的多個路徑。 透過 IShellItem 識別專案較強固且較不容易進行程式設計錯誤。 它也可讓您存取非檔案系統專案,例如虛擬資料夾。 一個作業中的多個專案可以傳遞為 IShellItemArray、 IDataObject 或透過 IEnumShellItems 存取的集合,而不是字串。
- 透過 HRESULT 值與 FormatMessage 等 API 進行更精確的錯誤報告。 SHFileOperation 的傳回碼可能會產生誤導或不正確。
- 擴充性。 身為元件物件模型 (COM) 介面, IFileOperation 可以讓第三方擴充其功能以符合其特定需求,不過這應該是非常罕見的情況。 Windows 提供 IFileOperation 的預設實作,應符合大部分使用者的需求。
- 更好的進度意見反應。 詳細的作業進度,包括特定作業開始和結束於個別專案以及整體進度時的通知,可以在作業期間接收。 雖然 SHFileOperation 確實提供進度 UI,但並未詳細說明。
- 更多功能。 除了 SHFileOperation 所提供的複製、刪除、移動和重新命名功能之外, IFileOperation 還可讓您套用屬性值並建立新專案。
- 更能控制作業。 除了 SHFileOperation 所辨識的作業旗標之外,在指定擴充作業選項的 IFileOperation::SetOperationFlags 中可辨識新的旗標。
- 不同的作業可以在一個呼叫中執行。 例如,您可以移動一組檔案、複製其他檔案、重新命名資料夾,並將屬性套用至一個作業中的所有專案。 SHFileOperation 一次只能執行一項作業:複製、移動、重新命名或刪除。
- 選擇性。 透過 建議 和 取消新增來設定進度狀態和錯誤通知的事件接收。
- 視需要使用下列命令設定作業狀態:
- 視需要指定要對哪些項目執行哪些作業。
- 呼叫 PerformOperations 來執行作業
示範 IFileOperation 延伸模組的完整範例包含在 Windows 軟體開發套件 (SDK) 中。 在預設安裝中,您可以在 %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations 找到。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |