Compartilhar via


Trabalhando com pastas conhecidas em aplicativos

O sistema de Pastas Conhecidas fornece uma maneira de interagir com determinadas pastas de alto perfil que estão presentes por padrão no Windows. Ele também permite essas mesmas interações com pastas instaladas e registradas com o sistema de Pastas Conhecidas por aplicativos. Este tópico discute essas possíveis interações conforme elas são fornecidas pelas APIs de Pasta Conhecida.

Importante

Para redirecionar as pastas Documentos, Imagens ou Área de Trabalho para o OneDrive, use o Movimento de Pasta Conhecida do OneDrive em vez do método de redirecionamento descrito neste artigo. Para obter informações, consulte Redirecionar e mover pastas conhecidas do Windows para o OneDrive.

Interfaces de pasta conhecidas

Há duas interfaces de Pasta Conhecida: IKnownFolder e IKnownFolderManager.

IKnownFolderManager fornece muitas das funções mais gerais em relação a essas pastas. Seus métodos permitem que você:

  • Recupere um IKnownFolder com base em KNOWNFOLDERID dessa pasta, seu nome canônico, seu caminho expresso como uma cadeia de caracteres ou seu caminho expresso como IDList.
  • Converta um CSIDL em seu equivalente KNOWNFOLDERID ou converta um KNOWNFOLDERID em seu equivalente CSIDL herdado.
  • Registre ou cancele o registro de uma Pasta Conhecida com o sistema.
  • Recupere todos os valores KNOWNFOLDERID registrados nesse sistema.
  • Redirecione uma Pasta Conhecida para um novo local.

IKnownFolder fornece um método que permite que uma pasta se redirecione fornecendo um novo caminho. Seus outros métodos obtêm informações sobre uma pasta conhecida específica, incluindo:

  • A categoria da pasta: virtual, fixa, comum ou por usuário.
  • O tipo da pasta, como compactados, documentos, imagens ou arquivos de usuário.
  • O KNOWNFOLDERID da pasta.
  • O caminho completo da pasta como uma IDList ou como uma cadeia de caracteres. Além disso, seu caminho relativo para uma pasta pai.
  • O nome canônico da pasta.
  • A dica de ferramenta exibida para a pasta.
  • O ícone exibido para a pasta.
  • Uma descrição da pasta que explica sua finalidade e uso.
  • Se a pasta é capaz de ser redirecionada.

IKnownFolder também fornece um método para recuperar um IShellItem com base na pasta . Isso permite que você associe a pasta a um manipulador, compare duas pastas e recupere os atributos da pasta, o nome de exibição e a pasta pai.

Redirecionamento

O redirecionamento de pastas é um recurso importante do sistema de pastas conhecido. Todas as pastas conhecidas da categoria comumKF_CATEGORY_COMMON**** ou por usuárioKF_CATEGORY_PERUSER**** são redirecionáveis. No entanto, a pasta de KF_CATEGORY_VIRTUAL virtualde categoria**** ou fixarKF_CATEGORY_FIXED****, no entanto, não pode ser redirecionada.

As pastas podem ser redirecionadas para outro local no mesmo computador ou para um local em uma rede. No caso de um redirecionamento de rede, a pasta pode ser armazenada em cache localmente por meio do cache do lado do cliente para fornecer acesso offline. No entanto, mesmo que exista um cache local, a própria pasta redirecionada deve ser acessada por meio da rede.

O redirecionamento de pasta não é novo para o Windows Vista. Por exemplo, no Windows XP, algumas pastas identificadas por meio do sistema CSIDL podem ser redirecionadas por meio de uma chamada para SHSetFolderPath ou modificando a entrada do CSIDL no registro. No Windows Vista e posterior, o redirecionamento deve ser realizado por meio de IKnownFolder::SetPath ou SHSetKnownFolderPath.

Para determinar se uma pasta pode ser redirecionada, chame IKnownFolder::GetRedirectionCapabilities. Se a pasta não puder ser redirecionada, essa chamada poderá dar uma explicação.

Se uma pasta for redirecionada para um local de rede, os métodos IKnownFolder ainda poderão ser chamados com êxito nela.

Exemplo de pastas conhecidas