Bagikan melalui


Antarmuka IFileOperation (shobjidl_core.h)

Mengekspos metode untuk menyalin, memindahkan, mengganti nama, membuat, dan menghapus item Shell serta metode untuk memberikan dialog kemajuan dan kesalahan. Antarmuka ini menggantikan fungsi SHFileOperation .

Warisan

Antarmuka IFileOperation mewarisi dari antarmuka IUnknown . IFileOperation juga memiliki jenis anggota ini:

Metode

Antarmuka IFileOperation memiliki metode ini.

 
IFileOperation::Advise

Memungkinkan handler untuk memberikan informasi status dan kesalahan untuk semua operasi.
IFileOperation::ApplyPropertiesToItem

Menyatakan satu item yang nilai propertinya akan diatur.
IFileOperation::ApplyPropertiesToItems

Mendeklarasikan sekumpulan item untuk menerapkan sekumpulan nilai properti umum.
IFileOperation::CopyItem

Menyatakan satu item yang akan disalin ke tujuan tertentu.
IFileOperation::CopyItems

Menyatakan sekumpulan item yang akan disalin ke tujuan tertentu.
IFileOperation::D eleteItem

Menyatakan satu item yang akan dihapus.
IFileOperation::D eleteItems

Menyatakan sekumpulan item yang akan dihapus.
IFileOperation::GetAnyOperationsAborted

Mendapatkan nilai yang menyatakan apakah ada operasi file yang dimulai oleh panggilan ke IFileOperation::P erformOperations dihentikan sebelum selesai. Operasi dapat dihentikan baik oleh tindakan pengguna atau diam-diam oleh sistem.
IFileOperation::MoveItem

Menyatakan satu item yang akan dipindahkan ke tujuan tertentu.
IFileOperation::MoveItems

Menyatakan sekumpulan item yang akan dipindahkan ke tujuan tertentu.
IFileOperation::NewItem

Menyatakan item baru yang akan dibuat di lokasi tertentu.
IFileOperation::P erformOperations

Menjalankan semua operasi yang dipilih.
IFileOperation::RenameItem

Menyatakan satu item yang akan diberi nama tampilan baru.
IFileOperation::RenameItems

Menyatakan sekumpulan item yang akan diberi nama tampilan baru. Semua item diberi nama yang sama.
IFileOperation::SetOperationFlags

Mengatur parameter untuk operasi saat ini.
IFileOperation::SetOwnerWindow

Menyetel jendela induk atau pemilik untuk kemajuan dan jendela dialog.
IFileOperation::SetProgressDialog

Menentukan kotak dialog yang digunakan untuk menampilkan kemajuan operasi.
IFileOperation::SetProgressMessage

Tidak diterapkan. (IFileOperation.SetProgressMessage)
IFileOperation::SetProperties

Menyatakan sekumpulan properti dan nilai yang akan diatur pada item atau item.
IFileOperation::Unadvise

Mengakhiri koneksi nasihat yang sebelumnya dibuat melalui IFileOperation::Advise.

Keterangan

Item Shell dapat menjadi objek apa pun di namespace layanan, termasuk objek sistem file seperti file dan folder, tetapi juga objek virtual. Dalam topik metode IFileOperation , istilah "item" digunakan untuk merujuk secara umum ke objek namespace layanan apa pun.

IFileOperation menawarkan banyak keuntungan dibandingkan fungsi SHFileOperation yang lebih lama.

  • Penggunaan IShellItem untuk mengidentifikasi item daripada jalur string. SHFileOperation memerlukan jalur dan string tujuan untuk mengakhiri dua karakter null daripada karakter null tunggal standar, yang digunakan untuk memisahkan beberapa jalur dalam string. Mengidentifikasi item melalui IShellItem lebih kuat dan kurang rentan terhadap kesalahan pemrograman. Ini juga memungkinkan Anda untuk mengakses item sistem non-file seperti folder virtual. Beberapa item dalam satu operasi dapat diteruskan sebagai IShellItemArray, IDataObject, atau koleksi yang diakses melalui IEnumShellItems daripada sebagai string.
  • Pelaporan kesalahan yang lebih akurat melalui nilai HRESULT bersama dengan API seperti FormatMessage. Mengembalikan kode dari SHFileOperation bisa menyesatkan atau tidak akurat.
  • Perpanjangan. Sebagai antarmuka Model Objek Komponen (COM), IFileOperation dapat memiliki kemampuannya yang diperluas oleh pihak ketiga untuk memenuhi kebutuhan spesifik mereka, meskipun ini harus menjadi kasus yang sangat jarang terjadi. Windows menyediakan implementasi default IFileOperation yang harus memenuhi kebutuhan sebagian besar pengguna.
  • Umpan balik kemajuan yang lebih baik. Kemajuan operasi terperinci, termasuk pemberitahuan ketika operasi tertentu dimulai dan berakhir pada masing-masing item serta kemajuan keseluruhan, dapat diterima selama operasi. Sementara SHFileOperation memberikan UI kemajuan, itu tidak sedetail itu.
  • Fungsionalitas lainnya. Selain fungsionalitas salin, hapus, pindahkan, dan ganti nama yang disediakan oleh SHFileOperation, IFileOperation memungkinkan Anda menerapkan nilai properti dan membuat item baru.
  • Kontrol lebih atas operasi. Selain bendera operasi yang dikenali oleh SHFileOperation, bendera baru dikenali dalam IFileOperation::SetOperationFlags yang menentukan opsi operasi yang diperluas.
  • Operasi yang berbeda dapat dilakukan dalam satu panggilan. Misalnya, Anda dapat memindahkan sekumpulan file, menyalin yang lain, mengganti nama folder, dan menerapkan properti ke item lain semuanya dalam satu operasi. SHFileOperation hanya dapat melakukan satu operasi—menyalin, memindahkan, mengganti nama, atau menghapus—pada satu waktu.
Untuk menyelesaikan operasi file menggunakan antarmuka ini, urutan panggilan harus dilakukan.
  1. Opsional. Siapkan sink peristiwa untuk status kemajuan dan pemberitahuan kesalahan melalui Saran dan Tidak Diawasi.
  2. Atur status operasi menggunakan yang berikut ini sesuai kebutuhan:
  3. Tentukan operasi mana yang akan dilakukan pada item mana yang menggunakan berikut ini sesuai kebutuhan.
  4. Jalankan operasi dengan memanggil PerformOperations
IFileOperation hanya dapat diterapkan dalam situasi apartemen berulir tunggal (STA). Ini tidak dapat digunakan untuk situasi apartemen multithreaded (MTA). Untuk MTA, Anda masih harus menggunakan SHFileOperation.

Sampel lengkap yang menunjukkan ekstensi IFileOperation disertakan dalam Windows Software Development Kit (SDK). Dalam penginstalan default, dapat ditemukan di %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header shobjidl_core.h (termasuk Shobjidl.h)