共用方式為


Unmanaged NTFS 提供者範例

NTFSProvider 範例為您示範如何使用 C++ 實作同步處理提供者,以同步處理檔案資料夾中的檔案。為了簡化起見,此範例並不處理子資料夾。

Security note安全性附註

此範例程式碼只是用來說明一項概念。由於範例可能不是使用最安全的編碼做法,此程式碼不應該用於應用程式或網站中。如果此範例程式碼使用於原先的設計用途之外,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

範例用來儲存檔案系統中同步處理中繼資料的 Helper 類別。

MyStore.h, MyStore.cpp

同步處理提供者類別。這會實作 IKnowledgeSyncProviderISyncProviderISynchronousDataRetrieverISynchronousNotifyingChangeApplierTarget,以參與同步處理。

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 建立範例

  1. 開啟 NTFSProvider.sln 檔案。

  2. 在 [建立] 功能表上選取 [BuildSolution]。

執行此範例

執行 SampleTest.exe

  1. 在根資料夾中,建立兩個資料夾:Folder1 和 Folder2。

  2. 加入一些內容 (例如文字檔案) 至資料夾。確保 Folder1 的內容與 Folder2 的內容不同。

  3. 若要在命令提示字元下執行範例,請開啟 [命令提示字元] 視窗,然後找出包含 SampleTest.exe 的資料夾。在命令提示字元下,輸入:SampleTest.exe C:\Folder1 C:\Folder2

  4. 若要執行 Visual Studio 中的範例,請開啟 SampleTest 專案的 [屬性頁]。在 [偵測命令引數] 欄位中,輸入:C:\Folder1 C:\Folder2。在 [偵錯] 功能表上,按一下 [開始偵錯]。

  5. 範例完成後,Folder1 和 Folder2 會包含相同的一組檔案。這兩個資料夾也包含納入同步處理中繼資料的檔案,例如 Knowledge.Sync、Metadata.Sync、Replica.Sync 和 TickCount.Sync。

請參閱

概念

Sync Framework 核心元件

其他資源

自訂資料同步處理範例