共用方式為


IFileOperation 介面 (shobjidl_core.h)

公開方法以複製、移動、重新命名、建立和刪除Shell專案,以及提供進度和錯誤對話框的方法。 此介面會取代 SHFileOperation 函式。

繼承

IFileOperation 介面繼承自 IUnknown 介面。 IFileOperation 也有下列類型的成員:

方法

IFileOperation 介面具有這些方法。

 
IFileOperation::建議

可讓處理程式提供所有作業的狀態和錯誤資訊。
IFileOperation::ApplyPropertiesToItem

宣告要設定其屬性值的單一專案。
IFileOperation::ApplyPropertiesToItems

宣告一組要套用一組通用屬性值的專案。
IFileOperation::CopyItem

宣告要複製到指定目的地的單一專案。
IFileOperation::CopyItems

宣告一組要複製到指定目的地的專案。
IFileOperation::D eleteItem

宣告要刪除的單一專案。
IFileOperation::D eleteItems

宣告要刪除的一組專案。
IFileOperation::GetAnyOperationsAborted

取得值,指出呼叫IFileOperation::P erformOperations 之前是否已停止任何檔案作業。 作業可由用戶動作或系統以無訊息方式停止。
IFileOperation::MoveItem

宣告要移至指定目的地的單一專案。
IFileOperation::MoveItems

宣告一組要移至指定目的地的專案。
IFileOperation::NewItem

宣告要建立於指定位置的新專案。
IFileOperation::P erformOperations

執行所有選取的作業。
IFileOperation::RenameItem

宣告要指定新顯示名稱的單一專案。
IFileOperation::RenameItems

宣告一組要指定新顯示名稱的專案。 所有項目都會指定相同的名稱。
IFileOperation::SetOperationFlags

設定目前作業的參數。
IFileOperation::SetOwnerWindow

設定進度和對話框視窗的父視窗或擁有者視窗。
IFileOperation::SetProgressDialog

指定用來顯示作業進度的對話框。
IFileOperation::SetProgressMessage

未實作。 (IFileOperation.SetProgressMessage)
IFileOperation::SetProperties

宣告一組要設定在專案或專案上的屬性和值。
IFileOperation::Unadvise

終止先前透過 IFileOperation::Advisor 建立的諮詢連線。

備註

Shell 專案可以是命名空間中的任何物件,包括檔案系統物件,例如檔案和資料夾,也可以是虛擬物件。 在 IFileOperation 方法主題中,「專案」一詞用來一般參考任何命名空間物件。

IFileOperation 提供許多優於舊 版 SHFileOperation 函式的優點。

  • 使用 IShellItem 來識別專案,而不是字串路徑。 SHFileOperation 需要路徑和目的地字串,以兩個 Null 字元結束,而不是標準單一 Null 字元,而該字元本身用來分隔字串中的多個路徑。 透過 IShellItem 識別專案較強固且較不容易進行程式設計錯誤。 它也可讓您存取非檔案系統專案,例如虛擬資料夾。 一個作業中的多個專案可以傳遞為 IShellItemArrayIDataObject 或透過 IEnumShellItems 存取的集合,而不是字串。
  • 透過 HRESULT 值與 FormatMessage 等 API 進行更精確的錯誤報告。 SHFileOperation 的傳回碼可能會產生誤導或不正確。
  • 擴充性。 身為元件物件模型 (COM) 介面, IFileOperation 可以讓第三方擴充其功能以符合其特定需求,不過這應該是非常罕見的情況。 Windows 提供 IFileOperation 的預設實作,應符合大部分使用者的需求。
  • 更好的進度意見反應。 詳細的作業進度,包括特定作業開始和結束於個別專案以及整體進度時的通知,可以在作業期間接收。 雖然 SHFileOperation 確實提供進度 UI,但並未詳細說明。
  • 更多功能。 除了 SHFileOperation 所提供的複製、刪除、移動和重新命名功能之外, IFileOperation 還可讓您套用屬性值並建立新專案。
  • 更能控制作業。 除了 SHFileOperation 所辨識的作業旗標之外,在指定擴充作業選項的 IFileOperation::SetOperationFlags 中可辨識新的旗標。
  • 不同的作業可以在一個呼叫中執行。 例如,您可以移動一組檔案、複製其他檔案、重新命名資料夾,並將屬性套用至一個作業中的所有專案。 SHFileOperation 一次只能執行一項作業:複製、移動、重新命名或刪除。
若要使用此介面完成檔案作業,必須進行一連串的呼叫。
  1. 選擇性。 透過 建議取消新增來設定進度狀態和錯誤通知的事件接收。
  2. 視需要使用下列命令設定作業狀態:
  3. 視需要指定要對哪些項目執行哪些作業。
  4. 呼叫 PerformOperations 來執行作業
IFileOperation 只能在單線程 Apartment 中套用 (STA) 情況。 它不能用於多線程 Apartment (MTA) 情況。 針對 MTA,您仍必須使用 SHFileOperation

示範 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)