FileSyncProvider Class

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

Inheritance Hierarchy

System.Object
  Microsoft.Synchronization.SyncProvider
    Microsoft.Synchronization.KnowledgeSyncProvider
      Microsoft.Synchronization.UnmanagedSyncProviderWrapper
        Microsoft.Synchronization.Files.FileSyncProvider

Namespace:  Microsoft.Synchronization.Files
Assembly:  Microsoft.Synchronization.Files (in Microsoft.Synchronization.Files.dll)

Syntax

'Declaration
Public Class FileSyncProvider _
    Inherits UnmanagedSyncProviderWrapper _
    Implements IDisposable
'Usage
Dim instance As FileSyncProvider
public class FileSyncProvider : UnmanagedSyncProviderWrapper, 
    IDisposable
public ref class FileSyncProvider : public UnmanagedSyncProviderWrapper, 
    IDisposable
type FileSyncProvider =  
    class
        inherit UnmanagedSyncProviderWrapper
        interface IDisposable
    end
public class FileSyncProvider extends UnmanagedSyncProviderWrapper implements IDisposable

The FileSyncProvider type exposes the following members.

Constructors

  Name Description
Public method FileSyncProvider(String) Initializes a new instance of the FileSyncProvider class based on the specified root directory path.
Public method FileSyncProvider(Guid, String) Initializes a new instance of the FileSyncProvider class based on the specified replica ID and root directory path.
Public method FileSyncProvider(String, FileSyncScopeFilter, FileSyncOptions) Initializes a new instance of the FileSyncProvider class that is based on the specified root directory path, scope filter, and configuration options.
Public method FileSyncProvider(Guid, String, FileSyncScopeFilter, FileSyncOptions) Initializes a new instance of the FileSyncProvider class that is based on the specified replica ID, root directory path, scope filter, and configuration options.
Public method FileSyncProvider(String, FileSyncScopeFilter, FileSyncOptions, String, String, String, String) Initializes a new instance of the FileSyncProvider class that is based on the specified root directory path, scope filter, configuration options, metadata storage file path, metadata storage file name, temporary file path, and path to store conflict loser files.
Public method FileSyncProvider(Guid, String, FileSyncScopeFilter, FileSyncOptions, String, String, String, String) Initializes a new instance of the FileSyncProvider class that is based on the specified replica ID, root directory path, scope filter, configuration options, metadata storage file path, metadata storage file name, temporary file path, and path to store conflict loser files.

Top

Properties

  Name Description
Public property Configuration Gets the configuration settings for the provider. (Inherited from KnowledgeSyncProvider.)
Public property DestinationCallbacks Gets an object that a synchronization application can use to register to receive notification of events that occur during synchronization. (Inherited from KnowledgeSyncProvider.)
Public property FileSyncOptions Gets the options that govern the behavior of the provider during synchronization.
Public property IdFormats Gets the schema that defines the format of various IDs that are used by the provider. (Overrides UnmanagedSyncProviderWrapper.IdFormats.)
Public property MetadataDirectoryPath Gets the absolute path to the metadata storage file.
Public property MetadataFileName Gets the name of the metadata storage file.
Public property PreviewMode Gets or sets a value that indicates whether the provider is in preview mode.
Public property ReplicaId Gets the ID for the replica.
Public property RootDirectoryPath Gets the absolute path to the local file store for this provider. This is the folder that contains the files and subfolders to be synchronized.
Public property ScopeFilter Gets the static scope filter that specifies which files or directories in the local file store are included in the scope.
Public property TempDirectoryPath Gets the absolute path where temporary files will be stored.

Top

Methods

  Name Description
Public method BeginSession Notifies the unmanaged provider that it is joining a synchronization session. (Inherited from UnmanagedSyncProviderWrapper.)
Public method DetectChanges Triggers an enumeration of the local file system replica for changes, and updates the metadata appropriately.
Public method Dispose() Releases the unmanaged resources that are used by FileSyncProvider.
Protected method Dispose(Boolean) Releases the unmanaged resources that are used by FileSyncProvider and optionally releases the managed resources.
Public method EndSession Notifies the unmanaged provider that a synchronization session to which it was enlisted has finished. (Inherited from UnmanagedSyncProviderWrapper.)
Public method Equals (Inherited from Object.)
Protected method Finalize Finalizer for FileSyncProvider. Releases all resources. (Overrides Object.Finalize().)
Public method GetChangeBatch Gets a batch of changes from the unmanaged provider. (Inherited from UnmanagedSyncProviderWrapper.)
Public method GetFullEnumerationChangeBatch Gets a batch of changes from the unmanaged provider as part of a full enumeration. (Inherited from UnmanagedSyncProviderWrapper.)
Public method GetHashCode (Inherited from Object.)
Public method GetSyncBatchParameters Gets the requested batch size and current knowledge for the scope from the unmanaged provider. (Inherited from UnmanagedSyncProviderWrapper.)
Public method GetType (Inherited from Object.)
Public method Initialize Initializes the wrapper so that it represents the specified unmanaged provider and uses the specified change data retriever adapter to convert between managed and unmanaged data retrievers. (Inherited from UnmanagedSyncProviderWrapper.)
Protected method MemberwiseClone (Inherited from Object.)
Public method ProcessChangeBatch Passes a batch of changes to the unmanaged provider for processing. (Inherited from UnmanagedSyncProviderWrapper.)
Public method ProcessFullEnumerationChangeBatch Passes a batch of changes to the unmanaged provider for processing during a full enumeration. (Inherited from UnmanagedSyncProviderWrapper.)
Public method ToString (Inherited from Object.)

Top

Events

  Name Description
Public event AppliedChange Occurs when a file change has been applied.
Public event ApplyingChange Occurs when a file change is about to be tried.
Public event CopyingFile Occurs periodically to show progress while a file is being copied.
Public event DetectedChanges Occurs when the change detection pass is complete.
Public event DetectingChanges Occurs when a directory is about to be analyzed during a change detection pass.
Public event SkippedChange Occurs when a change is skipped.
Public event SkippedFileDetect Occurs when a file or folder is not analyzed during change detection.

Top

Remarks

To synchronize all files and subfolders in a directory, pass the replica ID and root directory to FileSyncProvider(Guid, String), and pass the provider to a SyncAgent 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 FileSyncProvider(Guid, String, FileSyncScopeFilter, FileSyncOptions, String, String, String, String).

Control over which files and folders are included in the synchronization scope can be accomplished by configuring a FileSyncScopeFilter and passing it to the provider's constructor. 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, FileSyncOptions, 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 setting PreviewMode to true 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, the constructor will throw a ReplicaMetadataInUseException from the metadata store.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.Synchronization.Files Namespace