托管的 NTFS 提供程序示例
ManagedNTFSProvider 示例说明如何使用 C# 或 Microsoft Visual Basic 来实现用于同步文件夹中文件的同步提供程序。为了简单起见,此示例不处理子文件夹。
安全性注意 |
---|
此示例代码仅用于阐述概念。由于示例可能没有使用最安全的编码方法,因此不应在应用程序或网站中使用此代码。如果将此示例代码用于非预期目的,对于由此导致的偶然或连带的损失,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 |
同步提供程序类。这将实现 KnowledgeSyncProvider、IChangeDataRetriever 和 INotifyingChangeApplierTarget 以参与同步。 |
MyTransferMechanism.cs |
封装文件流的类。在同步期间,将此文件流从一个提供程序传递到另一个提供程序,以便使用它来复制实际文件数据。 |
MySyncController.cs |
创建并承载同步会话对象的类。 |
ManagedSampleTest 项目包含以下文件。
源文件 | 说明 |
---|---|
Program.cs |
应用程序的入口点。它分析命令行,将提供程序和控制器对象实例化,使所有提供程序和控制器对象相互连接并启动同步。 |
Visual Basic 实现
ManagedNTFSProvider 项目包含以下文件。
源文件 | 说明 |
---|---|
MetadataStore.vb |
一个帮助器类,示例使用它在文件系统中存储同步元数据。 |
MyStore.vb |
同步提供程序类。这将实现 KnowledgeSyncProvider、IChangeDataRetriever 和 INotifyingChangeApplierTarget 以参与同步。 |
MyTransferMechanism.vb |
封装文件流的类。在同步期间,将此文件流从一个提供程序传递到另一个提供程序,以便使用它来复制实际文件数据。 |
MySyncController.vb |
创建并承载同步会话对象的类。 |
ManagedSampleTest 项目包含以下文件。
源文件 | 说明 |
---|---|
Program.vb |
应用程序的入口点。它分析命令行,将提供程序和控制器对象实例化,使所有提供程序和控制器对象相互连接并启动同步。 |
接口
此示例演示以下 Sync Framework 类和接口:
KnowledgeSyncProvider |
|
IChangeDataRetriever |
|
INotifyingChangeApplierTarget |
|
|
要求
若要生成并运行此示例,必须安装以下软件:
Microsoft Visual Studio 2005 或 Visual Studio 2008
Microsoft .NET Framework 2.0 或 .NET Framework 3.0
生成示例
使用 Visual Studio 生成示例
打开 ManagedNTFSProvider.sln 文件。
在**“生成”菜单上,选择“生成解决方案”**。
运行示例
运行 ManagedSampleTest.exe
在根文件夹中,创建两个文件夹:Folder1 和 Folder2。
将某些内容(如文本文件)添加到这些文件夹。请确保 Folder1 和 Folder2 的内容不相同。
若要在命令提示符运行示例,请打开“命令提示符”窗口并找到包含 ManagedSampleTest.exe 的文件夹。在命令提示符下,键入:ManagedSampleTest.exe C:\Folder1 C:\Folder2。
若要在 Visual Studio 中运行示例,请打开 ManagedSampleTest 项目的**“属性页”。在“调试命令行参数”字段中,键入:C:\Folder1 C:\Folder2。在“调试”菜单上单击“启动调试”**。
示例完成后,Folder1 和 Folder2 将包含相同的一组文件。这些文件夹还包含含有同步元数据的文件,如 Knowledge.Sync、Metadata.Sync、Replica.Sync 和 TickCount.Sync。