Condividi tramite


Interfaccia IFileOperation (shobjidl_core.h)

Espone i metodi per copiare, spostare, rinominare, creare ed eliminare elementi della shell, nonché metodi per fornire finestre di dialogo di stato ed errore. Questa interfaccia sostituisce la funzione SHFileOperation .

Ereditarietà

L'interfaccia IFileOperation eredita dall'interfaccia IUnknown . IFileOperation include anche questi tipi di membri:

Metodi

L'interfaccia IFileOperation include questi metodi.

 
IFileOperation::Advise

Consente a un gestore di fornire informazioni sullo stato e sugli errori per tutte le operazioni.
IFileOperation::ApplyPropertiesToItem

Dichiara un singolo elemento i cui valori di proprietà devono essere impostati.
IFileOperation::ApplyPropertiesToItems

Dichiara un set di elementi per cui applicare un set comune di valori di proprietà.
IFileOperation::CopyItem

Dichiara un singolo elemento da copiare in una destinazione specificata.
IFileOperation::CopyItems

Dichiara un set di elementi da copiare in una destinazione specificata.
IFileOperation::D eleteItem

Dichiara un singolo elemento da eliminare.
IFileOperation::D eleteItems

Dichiara un set di elementi da eliminare.
IFileOperation::GetAnyOperationsAborted

Ottiene un valore che indica se le operazioni di file avviate da una chiamata a IFileOperation::P erformOperations sono state arrestate prima del completamento. Le operazioni possono essere arrestate dall'utente o automaticamente dal sistema.
IFileOperation::MoveItem

Dichiara un singolo elemento da spostare in una destinazione specificata.
IFileOperation::MoveItems

Dichiara un set di elementi da spostare in una destinazione specificata.
IFileOperation::NewItem

Dichiara un nuovo elemento da creare in una posizione specificata.
IFileOperation::P erformOperations

Esegue tutte le operazioni selezionate.
IFileOperation::RenameItem

Dichiara un singolo elemento da assegnare a un nuovo nome visualizzato.
IFileOperation::RenameItems

Dichiara un set di elementi da assegnare a un nuovo nome visualizzato. Tutti gli elementi hanno lo stesso nome.
IFileOperation::SetOperationFlags

Imposta i parametri per l'operazione corrente.
IFileOperation::SetOwnerWindow

Imposta la finestra padre o proprietario per le finestre di avanzamento e dialogo.
IFileOperation::SetProgressDialog

Specifica una finestra di dialogo utilizzata per visualizzare lo stato dell'operazione.
IFileOperation::SetProgressMessage

Non implementato. (IFileOperation.SetProgressMessage)
IFileOperation::SetProperties

Dichiara un set di proprietà e valori da impostare su un elemento o su elementi.
IFileOperation::Unadvise

Termina una connessione consultiva stabilita in precedenza tramite IFileOperation::Advise.

Commenti

Un elemento shell può essere qualsiasi oggetto nello spazio dei nomi, inclusi oggetti del file system, ad esempio file e cartelle, ma anche oggetti virtuali. Negli argomenti del metodo IFileOperation il termine "item" viene usato per fare riferimento genericamente a qualsiasi oggetto dello spazio dei nomi.

IFileOperation offre molti vantaggi rispetto alla funzione SHFileOperation precedente.

  • Uso di IShellItem per identificare gli elementi anziché i percorsi stringa. SHFileOperation richiedeva il percorso e le stringhe di destinazione per terminare in due caratteri Null anziché il singolo carattere Null standard, usato per delimitare più percorsi nella stringa. L'identificazione di un elemento tramite IShellItem è più affidabile e meno soggetta a errori di programmazione. Consente inoltre di accedere a elementi non di file system, ad esempio cartelle virtuali. È possibile passare più elementi in un'operazione come IShellItemArray, IDataObject o una raccolta a cui si accede tramite IEnumShellItems anziché come stringa.
  • Segnalazione degli errori più accurata tramite valori HRESULT in combinazione con un'API come FormatMessage. I codici restituiti da SHFileOperation potrebbero essere fuorvianti o non accurati.
  • Estendibilità. Come interfaccia COM (Component Object Model), IFileOperation può avere le sue funzionalità estese da terze parti per soddisfare le proprie esigenze specifiche, anche se questo dovrebbe essere un caso molto raro. Windows offre un'implementazione predefinita di IFileOperation che deve soddisfare le esigenze della maggior parte degli utenti.
  • Migliore feedback sullo stato di avanzamento. L'avanzamento dettagliato dell'operazione, incluse le notifiche all'inizio e alla fine di operazioni specifiche su singoli elementi, nonché l'avanzamento complessivo, può essere ricevuto durante l'operazione. Anche se SHFileOperation ha fornito l'interfaccia utente di stato, non era così dettagliata.
  • Altre funzionalità. Oltre alla funzionalità di copia, eliminazione, spostamento e ridenominazione fornita da SHFileOperation, IFileOperation consente di applicare i valori delle proprietà e creare nuovi elementi.
  • Maggiore controllo sull'operazione. Oltre ai flag di operazione riconosciuti da SHFileOperation, i nuovi flag vengono riconosciuti in IFileOperation::SetOperationFlags che specificano le opzioni di operazione estesa.
  • È possibile eseguire diverse operazioni in una sola chiamata. Ad esempio, è possibile spostare un set di file, copiare altri, rinominare una cartella e applicare le proprietà a un altro elemento in un'unica operazione. SHFileOperation può eseguire una sola operazione, ovvero copiare, spostare, rinominare o eliminare, alla volta.
Per eseguire un'operazione di file usando questa interfaccia, è necessario effettuare una sequenza di chiamate.
  1. facoltativo. Configurare il sink di eventi per le notifiche relative allo stato di avanzamento e agli errori tramite Advise e Unadvise.
  2. Impostare lo stato dell'operazione usando quanto segue in base alle esigenze:
  3. Specificare le operazioni da eseguire su quali elementi usare quanto segue in base alle esigenze.
  4. Eseguire le operazioni chiamando PerformOperations
IFileOperation può essere applicato solo in una situazione di appartamento a thread singolo (STA). Non può essere usato per una situazione di appartamento multithreaded (MTA). Per MTA, è comunque necessario usare SHFileOperation.

Un esempio completo che illustra l'estensione di IFileOperation è incluso nella Windows Software Development Kit (Windows SDK) (SDK). In un'installazione predefinita, è disponibile in %ProgramFiles%\Microsoft SDK\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)