Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Образец неуправляемого поставщика NTFS показывает использование на языке C++ службы синхронизации, синхронизирующего файлы в папке. Для простоты в этом образце не предусмотрена обработка вложенных папок.
Безопасность Примечание. |
|---|
Этот образец кода приводится в качестве иллюстрации основных понятий. Поскольку образец не использует приемы самого безопасного программирования, этот код не должен применяться в приложениях или на веб-узлах. Microsoft Корпорация Майкрософт не несет никакой ответственности за побочные или косвенные убытки, если этот образец кода будет применяться в целях, отличающихся от предполагаемых. |
Расположение файлов
Файлы образца размещаются в каталоге установки Sync Framework. По умолчанию это C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.
Содержимое
Этот образец содержит два проекта в решении Microsoft Visual Studio.
NTFSProvider. Реализация службы синхронизации.
SampleTest. Простое приложение синхронизации.
Файлы
Проект NTFSProvider содержит следующие файлы.
| Исходный файл | Описание |
|---|---|
MetadataStore.h, MetadataStore.cpp |
Вспомогательный класс, который используется образцом для хранения метаданных синхронизации в файловой системе. |
MyStore.h, MyStore.cpp |
Класс службы синхронизации. Реализует интерфейсы IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever и ISynchronousNotifyingChangeApplierTarget для участия в синхронизации. |
MyTransferMechanism.h, MyTransferMechanism.cpp |
Класс, инкапсулирующий файловый поток и реализующий метод IUnknown. Экземпляр этого класса передается от одного поставщика к другому и используется для копирования действительных данных файла во время синхронизации. |
Проект SampleTest содержит следующие файлы.
| Исходный файл | Описание |
|---|---|
SyncController.h, SyncController.cpp |
Класс, который создает и размещает объект сеанса синхронизации. Этот класс также реализует интерфейс ISyncCallback и регистры для получения событий синхронизации от объекта сеанса синхронизации. |
SyncMain.cpp |
Точка входа в приложение. Выполняет синтаксический анализ командной строки, создает экземпляры служб и объект контроллера, соединяет их друг с другом и запускает синхронизацию. |
Интерфейсы
В образце показаны следующие интерфейсы Sync Framework:
IKnowledgeSyncProvider |
IEnumSyncChanges |
ISyncProvider |
ISyncChange |
ISynchronousDataRetriever |
IForgottenKnowledge |
ISynchronousNotifyingChangeApplierTarget |
ISynchronousNotifyingChangeApplier |
ISyncCallback |
ILoadChangeContext |
ISyncKnowledge |
ISaveChangeContext |
ISyncChangeBatch |
IApplicationSyncServices |
IProviderSyncServices |
ISyncSession |
Требования
Для построения и вызова на выполнение этого образца должно быть установлено следующее программное обеспечение.
- Microsoft Visual Studio 2005 или Visual Studio 2008
Построение образца
Построение образца с использованием Visual Studio
Откройте файл NTFSProvider.sln.
В меню Построить выберите пункт Построить решение.
Запуск образца
Запуск SampleTest.exe
Создайте в корневой папке две папки: Folder1 и Folder2.
Добавьте в папки содержимое, например текстовые файлы. Убедитесь, что содержимое папки Folder1 отличается от содержимого папки Folder2.
Чтобы запустить образец в командной строке, отройте окно командной строки и найдите папку, в которую помещен файл SampleTest.exe. В командной строке введите: SampleTest.exe C:\Folder1 C:\Folder2.
Чтобы запустить образец в среде Visual Studio, откройте диалоговое окно Страницы свойств для проекта SampleTest. В поле Аргументы команды отладки введите: C:\Folder1 C:\Folder2. В меню Отладка выберите команду Запустить отладку.
По завершении работы образца папки Folder1 и Folder2 будут содержать одинаковые наборы файлов. Эти папки также содержат файлы с метаданными синхронизации, например Knowledge.Sync, Metadata.Sync, Replica.Sync и TickCount.Sync.
См. также
Основные понятия
Базовые компоненты Sync Framework
Безопасность Примечание.