Exemple de fournisseur NTFS non managé
L'exemple NTFSProvider vous explique comment utiliser C++ pour implémenter un fournisseur de synchronisation qui synchronise les fichiers dans un dossier de fichiers. À des fins de simplicité, cet exemple ne gère pas les sous-dossiers.
Sécurité Remarque |
---|
Cet exemple de code est fourni pour illustrer un concept. Dans la mesure où il est possible que l'exemple n'utilise pas les pratiques de codage les plus sécurisées, le code ne doit pas être utilisé dans les applications ou les sites Web. Microsoft décline toute responsabilité pour tout dommage indirect ou consécutif à l'utilisation de l'exemple de code à des fins autres que celles prévues. |
Emplacement des fichiers
Les fichiers de cet exemple se trouvent à l'emplacement où Sync Framework est installé. L'emplacement par défaut est C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.
Contenu
Cet exemple contient deux projets dans une solution Microsoft Visual Studio :
NTFSProvider. Est l'implémentation du fournisseur de synchronisation.
SampleTest. Est une application de synchronisation simple.
Fichiers
Le projet NTFSProvider contient les fichiers suivants.
Fichier source | Description |
---|---|
MetadataStore.h, MetadataStore.cpp |
Classe d'assistance que l'exemple utilise pour stocker les métadonnées de synchronisation dans le système de fichiers. |
MyStore.h, MyStore.cpp |
Classe du fournisseur de synchronisation. Elle implémente IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever et ISynchronousNotifyingChangeApplierTarget pour participer à la synchronisation. |
MyTransferMechanism.h, MyTransferMechanism.cpp |
Classe qui encapsule un flux de fichiers et implémente IUnknown. Une instance de cette classe est passée d'un fournisseur à un autre et est utilisée pour copier les données du fichier réelles pendant la synchronisation. |
Le projet SampleTest contient les fichiers suivants.
Fichier source | Description |
---|---|
SyncController.h, SyncController.cpp |
Classe qui crée et héberge l'objet de session de synchronisation. Cette classe implémente également ISyncCallback et des registres pour recevoir des événements de synchronisation de l'objet de session. |
SyncMain.cpp |
Point d'entrée à l'application. Il analyse la ligne de commande, instancie les fournisseurs et l'objet contrôleur, les connecte tous entre eux, puis démarre la synchronisation. |
Interfaces
Cet exemple illustre les interfaces Sync Framework suivantes :
IKnowledgeSyncProvider |
IEnumSyncChanges |
ISyncProvider |
ISyncChange |
ISynchronousDataRetriever |
IForgottenKnowledge |
ISynchronousNotifyingChangeApplierTarget |
ISynchronousNotifyingChangeApplier |
ISyncCallback |
ILoadChangeContext |
ISyncKnowledge |
ISaveChangeContext |
ISyncChangeBatch |
IApplicationSyncServices |
IProviderSyncServices |
ISyncSession |
Spécifications
Pour générer et exécuter cet exemple, les logiciels suivants doivent être installés :
- Microsoft Visual Studio 2005 ou Visual Studio 2008
Génération de l'exemple
Pour générer l'exemple à l'aide de Visual Studio
Ouvrez le fichier NTFSProvider.sln.
Dans le menu Générer, sélectionnez BuildSolution.
Exécution de l'exemple
Pour exécuter SampleTest.exe
Dans le dossier racine, créez deux dossiers : Folder1 et Folder2.
Ajoutez du contenu, tel que des fichiers texte, aux dossiers. Assurez-vous que le contenu de Folder1 est différent du contenu de Folder2.
Pour exécuter l'exemple à une invite de commandes, ouvrez une fenêtre d'invite de commandes et localisez le dossier qui contient SampleTest.exe. À l'invite de commandes, tapez : SampleTest.exe C:\Folder1 C:\Folder2.
Pour exécuter l'exemple dans Visual Studio, ouvrez les Pages de propriétés pour le projet SampleTest. Dans le champ Débogage Arguments de la commande, tapez : C:\Folder1 C:\Folder2. Dans le menu Déboguer, cliquez sur Démarrer le débogage.
Une fois l'exemple terminé, Folder1 et Folder2 contiennent le même ensemble de fichiers. Les dossiers incluent également des fichiers qui contiennent des métadonnées de synchronisation, par exemple Knowledge.Sync, Metadata.Sync, Replica.Sync et TickCount.Sync.
Voir aussi
Concepts
Composants principaux de Sync Framework