Condividi tramite


Esempio di provider NTFS non gestito

Nell'esempio NTFSProvider viene illustrato come è possibile utilizzare C++ per implementare un provider di sincronizzazione che sincronizza file in una cartella di file. Per semplicità, in questo esempio non vengono gestite le sottocartelle.

Security noteSicurezza Nota

Questo codice di esempio viene fornito per illustrare un concetto. Poiché l'esempio potrebbe non utilizzare le procedure di codifica più sicure, il codice non deve essere utilizzato in applicazioni o siti Web. Microsoft non si assume responsabilità per danni incidentali o consequenziali derivanti dall'uso del codice di esempio per scopi diversi da quelli previsti.

Percorso del file

I file di questo esempio si trovano nel percorso in cui è installato Sync Framework. Il percorso predefinito è C:\Programmi (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.

Contenuto

In questo esempio sono contenuti due progetti in una soluzione Microsoft Visual Studio:

  • NTFSProvider. Rappresenta l'implementazione del provider di sincronizzazione.

  • SampleTest. Rappresenta un'applicazione di sincronizzazione semplice.

File

Il progetto NTFSProvider contiene i seguenti file.

File di origine Descrizione

MetadataStore.h, MetadataStore.cpp

Classe helper utilizzata nell'esempio per archiviare i metadati per la sincronizzazione nel file system.

MyStore.h, MyStore.cpp

Classe del provider di sincronizzazione. Implementa IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever e ISynchronousNotifyingChangeApplierTarget per la partecipazione alla sincronizzazione.

MyTransferMechanism.h, MyTransferMechanism.cpp

Classe che incapsula un flusso di file e implementa IUnknown. Un'istanza di questa classe viene passata da un provider a un altro e utilizzata per copiare i dati effettivi del file durante la sincronizzazione.

Il progetto SampleTest contiene i file seguenti.

File di origine Descrizione

SyncController.h, SyncController.cpp

Classe che crea e ospita l'oggetto della sessione di sincronizzazione. Questa classe implementa anche ISyncCallback ed effettua la registrazione per ricevere eventi di sincronizzazione dall'oggetto della sessione.

SyncMain.cpp

Punto di ingresso dell'applicazione. Analizza la riga di comando, crea un'istanza dei provider e dell'oggetto controller, li connette tra loro e avvia la sincronizzazione.

Interfacce

In questo esempio vengono illustrate le interfacce Sync Framework seguenti:

IKnowledgeSyncProvider

IEnumSyncChanges

ISyncProvider

ISyncChange

ISynchronousDataRetriever

IForgottenKnowledge

ISynchronousNotifyingChangeApplierTarget

ISynchronousNotifyingChangeApplier

ISyncCallback

ILoadChangeContext

ISyncKnowledge

ISaveChangeContext

ISyncChangeBatch

IApplicationSyncServices

IProviderSyncServices

ISyncSession

Requisiti

Per generare ed eseguire questo esempio, è necessario installare il software seguente:

  • Microsoft Visual Studio 2005 o Visual Studio 2008

Generazione dell'esempio

Per compilare l'esempio tramite Visual Studio

  1. Aprire il file NTFSProvider.sln.

  2. Scegliere Compila soluzione dal menu Compila.

Esecuzione dell'esempio

Per eseguire SampleTest.exe

  1. Nella cartella radice, creare due cartelle: Folder1 e Folder2.

  2. Aggiungere contenuto, ad esempio file di testo, alle cartelle. Verificare che il contenuto di Folder1 sia diverso da quello di Folder2.

  3. Per eseguire l'esempio dal prompt dei comandi, aprire una finestra del prompt dei comandi e individuare la cartella contenente SampleTest.exe. Dal prompt dei comandi, digitare: SampleTest.exe C:\Folder1 C:\Folder2.

  4. Per eseguire l'esempio in Visual Studio, aprire Pagine delle proprietà per il progetto SampleTest. Nel campo Debug argomenti del comando, digitare: C:\Folder1 C:\Folder2. Scegliere Avvia debug dal menu Debug.

  5. Alla fine dell'esempio, Folder1 e Folder2 conterranno lo stesso set di file. Le cartelle contengono inoltre i file contenenti i metadati per la sincronizzazione, ad esempio Knowledge.Sync, Metadata.Sync, Replica.Sync e TickCount.Sync.

Vedere anche

Concetti

Componenti principali di Sync Framework

Altre risorse

Esempi di sincronizzazione dei dati personalizzati