IFileSyncProvider Interface

Is a synchronous filtered synchronization provider that can be used to synchronize files, folders, and subfolders in NTFS, FAT, or SMB file systems.

Syntax

interface IFileSyncProvider : IKnowledgeSyncProvider

Members

IFileSyncProvider Methods

Description

IFileSyncProvider::Initialize

Initializes a new instance of IFileSyncProvider that is based on the folder to synchronize and other settings.

IFileSyncProvider::DetectChanges

Triggers an enumeration of the local file system replica for changes, and updates the metadata appropriately.

IFileSyncProvider::SetPreviewMode

Sets a value that indicates whether the provider is in preview mode.

IFileSyncProvider::CreateNewScopeFilter

Creates a new IFileSyncScopeFilter object that can be passed to Initialize after its filter properties are set.

Remarks

To synchronize all files and subfolders in a directory, pass the replica ID and root directory to IFileSyncProvider::Initialize, pass the provider to IApplicationSyncServices::CreateSyncSession, and use the returned ISyncSession object to handle the synchronization session.

By default, synchronization metadata is stored in a metadata storage service database file in the root directory of the replica. To customize the location and name of this file, specify these by using Initialize.

Control over which files and folders are included in the synchronization scope can be accomplished by configuring an IFileSyncScopeFilter object and passing it to Initialize. The filter contains properties that can be used to exclude a list of files, exclude a list of folders, exclude files and folders based on their attributes, and explicitly include a list of files.

A number of configuration options, FILESYNC_INIT_FLAGS, are available to control how the provider behaves during synchronization; for example, whether it moves deleted files to the recycle bin or deletes them permanently from the file system.

A variety of events are available to the application that wants to show progress or dynamically skip particular changes during the session.

The provider can be put into preview mode by passing TRUE to IFileSyncProvider::SetPreviewMode before starting synchronization. While in preview mode, the provider will perform all actions as if a real synchronization session is occurring, including firing all events. However, the provider will not actually apply any changes to the destination replica.

Note

Concurrent synchronization operations to the same file store are not supported. If another provider instance was previously initialized with the same replica (that is, the same values for directory path and metadata file path), but has not yet been released, Initialize will return SYNC_METADATA_E_REPLICA_IN_USE.

Requirements

Header: FileSyncProvider.h

See Also

Concepts

Sync Framework File Synchronization Components