Controlando quais arquivos são sincronizados

O Sync Framework fornece vários modos de controlar quais arquivos e subpastas são incluídos no escopo de sincronização. Os filtros estáticos excluem ou incluem arquivos e subpastas com base nas configurações especificadas pelo aplicativo quando o provedor é inicializado. A filtragem dinâmica é obtida usando uma notificação de eventos que o aplicativo pode registrar-se para receber.

Tipos de pasta e de arquivo excluídos e sem suporte

Os seguintes arquivos são sempre excluídos do escopo de sincronização e são totalmente ignorados:

  • Thumbs.db quando os atributos hidden e system são definidos.

  • Desktop.ini quando os atributos hidden e system são definidos.

  • O arquivo de metadados especificado quando o provedor foi inicializado.

  • Um arquivo que tem o atributo offline ou device definido.

  • Uma pasta que tem o atributo reparse point definido.

Pastas que contêm pastas Porta-arquivos não são suportadas e não devem ser incluídas nos escopos de sincronização.

Filtros estáticos

Os filtros estáticos podem ser definidos para excluir arquivos por nome (inclusive nomes curinga) e por atributo. Os filtros estáticos também podem ser definidos para excluir o conteúdo de subpastas inteiras, mas não há suporte a curingas nas subpastas. Também é possível especificar uma lista explícita de nomes de arquivos a serem incluídos (inclusive nomes curinga). Para ser incluído no escopo, um arquivo ou uma pasta deve passar por todos os filtros. Por exemplo, se todos os arquivos com uma extensão .txt forem excluídos do escopo e MyFile.txt for especificado na lista de arquivos a serem incluídos explicitamente no escopo, MyFile.txt será excluído do escopo por causa da extensão .txt.

Para especificar um filtro estático usando código gerenciado

  1. Crie um objeto FileSyncScopeFilter. As propriedades de exclusão ou inclusão são definidas no construtor FileSyncScopeFilter, por exemplo, especificando "*.txt" no parâmetro fileNameExcludes para excluir do escopo de sincronização todos os arquivos que têm uma extensão .txt.

  2. Passe o filtro para o construtor FileSyncProvider. Quando esse provedor for usado como o provedor de origem em uma sessão de sincronização, somente os arquivos que passam os filtros especificados serão incluídos no escopo de sincronização.

Para especificar um filtro estático usando código não gerenciado

  1. Crie um objeto IFileSyncScopeFilter usando IFileSyncProvider::CreateNewScopeFilter.

  2. Defina a propriedade de exclusão ou inclusão no objeto de filtro, por exemplo, especificando "*.txt" para o método IFileSyncScopeFilter::SetFilenameExcludes excluir do escopo de sincronização todos os arquivos com a extensão .txt.

  3. Passe o filtro para IFileSyncProvider::Initialize. Quando esse provedor for usado como o provedor de origem em uma sessão de sincronização, somente os arquivos que passam os filtros especificados serão incluídos no escopo de sincronização.

Ignorando arquivos

Os arquivos podem ser ignorados dinamicamente durante a sincronização tratando um evento gerado pelo provedor. Esse evento ocorre durante a aplicativo de alterações. Ele é gerado pelo provedor de destino uma vez para cada alteração, antes de a alteração ser aplicada à réplica de destino. Quando o manipulador de eventos recebe o evento, ele pode especificar que a alteração não deve ser aplicada à réplica de destino.

Código gerenciado Registre um manipulador para o evento ApplyingChange. Para ignorar uma alteração, defina o valor da propriedade SkipChange como true no manipulador de eventos.

Código não gerenciado Passe um objeto IFileSyncProviderCallback para IFileSyncProvider::Initialize para registrar e receber notificações de eventos. Para ignorar uma alteração, defina o valor do parâmetro pfSkipChange como TRUE em IFileSyncProviderCallback::OnApplyingChange.

Consulte também

Referência

Interface IFileSyncScopeFilter
Interface IFileSyncProviderCallback
FileSyncScopeFilter

Conceitos

Sincronizando arquivos