托管的 NTFS 提供程序示例

ManagedNTFSProvider 示例说明如何使用 C# 或 Microsoft Visual Basic 来实现用于同步文件夹中文件的同步提供程序。为了简单起见,此示例不处理子文件夹。

Security note安全性注意

此示例代码仅用于阐述概念。由于示例可能没有使用最安全的编码方法,因此不应在应用程序或网站中使用此代码。如果将此示例代码用于非预期目的,对于由此导致的偶然或连带的损失,Microsoft 概不负责。

文件位置

此示例的文件位于安装 Sync Framework 的位置。默认位置是 C:\Program Files\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\ManagedNTFSSample。

内容

此示例包含 C# 和 Visual Basic 实现。两者非常相似。每一个都包含 Microsoft Visual Studio 解决方案中的以下项目:

  • ManagedNTFSProvider 将同步提供程序实现与简单同步应用程序结合起来

  • ManagedSampleTest 运行这些组件以执行同步。

文件

C# 实现

ManagedNTFSProvider 项目包含以下文件。

源文件 说明

MetadataStore.cs

一个帮助器类,示例使用它在文件系统中存储同步元数据。

MyStore.cs

同步提供程序类。这将实现 KnowledgeSyncProviderIChangeDataRetrieverINotifyingChangeApplierTarget 以参与同步。

MyTransferMechanism.cs

封装文件流的类。在同步期间,将此文件流从一个提供程序传递到另一个提供程序,以便使用它来复制实际文件数据。

MySyncController.cs

创建并承载同步会话对象的类。

ManagedSampleTest 项目包含以下文件。

源文件 说明

Program.cs

应用程序的入口点。它分析命令行,将提供程序和控制器对象实例化,使所有提供程序和控制器对象相互连接并启动同步。

Visual Basic 实现

ManagedNTFSProvider 项目包含以下文件。

源文件 说明

MetadataStore.vb

一个帮助器类,示例使用它在文件系统中存储同步元数据。

MyStore.vb

同步提供程序类。这将实现 KnowledgeSyncProviderIChangeDataRetrieverINotifyingChangeApplierTarget 以参与同步。

MyTransferMechanism.vb

封装文件流的类。在同步期间,将此文件流从一个提供程序传递到另一个提供程序,以便使用它来复制实际文件数据。

MySyncController.vb

创建并承载同步会话对象的类。

ManagedSampleTest 项目包含以下文件。

源文件 说明

Program.vb

应用程序的入口点。它分析命令行,将提供程序和控制器对象实例化,使所有提供程序和控制器对象相互连接并启动同步。

接口

此示例演示以下 Sync Framework 类和接口:

KnowledgeSyncProvider

ItemChange

IChangeDataRetriever

INotifyingChangeApplierTarget

NotifyingChangeApplier

SyncProvider

LoadChangeContext

SyncKnowledge

SaveChangeContext

ForgottenKnowledge

SyncOrchestrator

ChangeBatch

 

要求

若要生成并运行此示例,必须安装以下软件:

  • Microsoft Visual Studio 2005 或 Visual Studio 2008

  • Microsoft .NET Framework 2.0 或 .NET Framework 3.0

生成示例

使用 Visual Studio 生成示例

  1. 打开 ManagedNTFSProvider.sln 文件。

  2. 在**“生成”菜单上,选择“生成解决方案”**。

运行示例

运行 ManagedSampleTest.exe

  1. 在根文件夹中,创建两个文件夹:Folder1 和 Folder2。

  2. 将某些内容(如文本文件)添加到这些文件夹。请确保 Folder1 和 Folder2 的内容不相同。

  3. 若要在命令提示符运行示例,请打开“命令提示符”窗口并找到包含 ManagedSampleTest.exe 的文件夹。在命令提示符下,键入:ManagedSampleTest.exe C:\Folder1 C:\Folder2

  4. 若要在 Visual Studio 中运行示例,请打开 ManagedSampleTest 项目的**“属性页”。在“调试命令行参数”字段中,键入:C:\Folder1 C:\Folder2。在“调试”菜单上单击“启动调试”**。

  5. 示例完成后,Folder1 和 Folder2 将包含相同的一组文件。这些文件夹还包含含有同步元数据的文件,如 Knowledge.Sync、Metadata.Sync、Replica.Sync 和 TickCount.Sync。

请参阅

参考

Microsoft.Synchronization

其他资源

自定义数据同步示例