IFileSyncScopeFilter インターフェイス

静的な同期スコープに対してファイルやフォルダーを含めたり除外したりする場合に使用するフィルターを定義します。

interface IFileSyncScopeFilter : IUnknown

メンバー

IFileSyncScopeFilter メソッド 説明

IFileSyncScopeFilter::SetFilenameExcludes

スコープから除外するファイル名のコレクションを設定します。

IFileSyncScopeFilter::SetSubDirectoryExcludes

スコープから除外するディレクトリの相対パスのコレクションを設定します。

IFileSyncScopeFilter::SetFileAttributeExcludeMask

スコープからファイルおよびフォルダーを除外するために使用する属性を設定します。

IFileSyncScopeFilter::SetFilenameIncludes

スコープに明示的に含めるファイル名のコレクションを設定します。

IFileSyncScopeFilter::GetFilenameExcludes

スコープから除外するファイル名のコレクションを取得します。

IFileSyncScopeFilter::GetSubDirectoryExcludes

スコープから除外するディレクトリの相対パスのコレクションを取得します。

IFileSyncScopeFilter::GetFileAttributeExcludeMask

スコープからファイルおよびフォルダーを除外するために使用する属性を取得します。

IFileSyncScopeFilter::GetFilenameIncludes

スコープに明示的に含めるファイル名のコレクションを取得します。

解説

静的フィルターは変更の検出時に使用され、同期スコープのすべての項目に同様に適用されます。同期に項目を含める場合、その項目はすべての静的フィルターを通過する必要があります。たとえば、ファイルが明示的な方法で同時に除外および包含されている場合、このファイルはスコープから除外されます。

同期コミュニティのすべてのプロバイダーには、同じスコープ フィルターを使用する必要があります。同じスコープ フィルターが使用されないと、予期しない動作が発生する場合があります。

フィルターが IFileSyncProvider::Initialize に渡されると、スコープ フィルターに基づいて、プロバイダー オブジェクトの初期化に使用されます。その後フィルターが変更されても、プロバイダーのそのインスタンスに使用されるスコープ フィルターは影響を受けません。使用されるスコープ フィルターを変更するには、新しい IFileSyncProvider オブジェクトを作成する必要があります。

最初の同期を行った後にレプリカのスコープを変更すると、予想外の副作用が発生する場合があります。たとえば、最初の同期からしばらく時間が経過した後にレプリカ A のスコープを変更して、*.txt を除外するとします。これにより、.txt 拡張子を持つすべてのファイルはレプリカ A で削除済みとして扱われます。レプリカ A からは、実際にはどのファイルも削除されません。ただし、A のメタデータには .txt ファイルの廃棄標識が含まれ、A から他のレプリカに対し、.txt ファイルの削除の変更が送信されます。レプリカ B でも *.txt を除外した場合は、何も起こりません。B では、.txt ファイルに関する A からの変更がフィルター処理されるからです。ただし、レプリカ B のフィルターを変更しないと、削除されたファイルがそこに流れて本当の変更要求として扱われ、レプリカ B から削除されます。

必要条件

ヘッダー: Filesyncprovider.h

参照

概念

Sync Framework のファイル同期コンポーネント