共用方式為


控制同步處理的檔案

Sync Framework 提供多種方式,控制在同步處理範圍中所包含的檔案和子資料夾。靜態篩選會根據應用程式在初始化提供者時所指定的設定值來排除或包含檔案和子資料夾。動態篩選則是透過應用程式可在註冊後接收的事件通知來達成。

排除和不受支援的檔案及資料夾類型

下列檔案一定會從同步處理範圍中排除,而且完全加以忽略:

  • Thumbs.db,設定 hidden 和 system 屬性時。

  • Desktop.ini,設定 hidden 和 system 屬性時。

  • 初始化提供者時所指定的中繼資料檔案。

  • 已設定 offline 或 device 屬性的檔案。

  • 已設定 reparse point 屬性的資料夾。

包含 [公事包] 資料夾的資料夾不受支援,而且不應該包含在任何同步處理範圍中。

靜態篩選

可以設定靜態篩選,依名稱 (包括萬用字元名稱) 和依屬性來排除檔案。靜態篩選也可以設定為排除整個子資料夾的內容,但是子資料夾並不支援萬用字元。或者可以指定要包含的明確檔案名稱清單 (包括萬用字元名稱)。若要包含在範圍內,檔案或資料夾必須通過所有篩選。例如,如果副檔名為 .txt 的所有檔案都排除在範圍之外,而 MyFile.txt 是指定為要明確包含於範圍之內的檔案清單中,則 MyFile.txt 會由於副檔名為 .txt 而排除於範圍之外。

若要使用 Managed 程式碼指定靜態篩選

  1. 建立 FileSyncScopeFilter 物件。排除或包含屬性是在 FileSyncScopeFilter 建構函式中設定,例如,針對 fileNameExcludes 參數指定 "*.txt",將副檔名為 .txt 的所有檔案排除在同步處理範圍之外。

  2. 將篩選傳遞給 FileSyncProvider 建構函式。當此提供者用來做為同步處理工作階段中的來源提供者時,只有通過指定篩選的檔案,才會包含於同步處理範圍中。

若要使用 Unmanaged 程式碼指定靜態篩選

  1. 使用 IFileSyncProvider::CreateNewScopeFilter,建立 IFileSyncScopeFilter 物件。

  2. 在篩選物件上設定排除或包含屬性,例如,將 "*.txt" 設定至 IFileSyncScopeFilter::SetFilenameExcludes 方法,從同步處理範圍排除副檔名為 .txt 的所有檔案。

  3. 傳遞篩選給 IFileSyncProvider::Initialize。當此提供者用來做為同步處理工作階段中的來源提供者時,只有通過指定篩選的檔案,才會包含於同步處理範圍中。

略過檔案

透過處理由提供者引發的事件,可以在同步處理期間以動態方式略過檔案。這個事件發生於變更套用期間,是由目的地提供者針對每個變更引發一次,再將變更套用至目的地複寫。事件處理常式接到事件之後,可以指定該變更不可套用到目的地複寫。

Managed 程式碼:註冊 ApplyingChange 事件的處理常式。若要略過變更,請在事件處理常式中,將 SkipChange 屬性的值設定為 true

Unmanaged 程式碼:傳遞 IFileSyncProviderCallback 物件給 IFileSyncProvider::Initialize,以便註冊接收事件通知。若要略過變更,請在 IFileSyncProviderCallback::OnApplyingChange 中,將 pfSkipChange 參數的值設定為 TRUE

請參閱

參考

IFileSyncScopeFilter 介面
IFileSyncProviderCallback 介面
FileSyncScopeFilter

概念

同步處理檔案