Trabajar con carpetas conocidas en aplicaciones

El sistema de carpetas conocidas proporciona una manera de interactuar con determinadas carpetas de alto perfil que están presentes de forma predeterminada en Windows. También permite esas mismas interacciones con las carpetas instaladas y registradas en el sistema de carpetas conocidas por las aplicaciones. En este tema se describen las posibles interacciones a medida que las API de carpetas conocidas proporcionan.

Importante

Para redirigir las carpetas Documentos, Imágenes o Escritorio a OneDrive, use Movimiento de carpetas conocidas de OneDrive en lugar del método de redireccionamiento descrito en este artículo. Para obtener información, vea Redirigir y mover carpetas conocidas de Windows a OneDrive.

Interfaces de carpeta conocidas

Hay dos interfaces de carpeta conocidas: IKnownFolder e IKnownFolderManager.

IKnownFolderManager proporciona muchas de las funciones más generales en lo que respecta a estas carpetas. Sus métodos le permiten:

  • Recupere un IKnownFolder basado en el KNOWNFOLDERID de esa carpeta, su nombre canónico, su ruta de acceso expresada como una cadena o su ruta de acceso expresada como idList.
  • Convierta un CSIDL en su equivalente KNOWNFOLDERID o convierta un KNOWNFOLDERID en su equivalente CSIDL heredado.
  • Registre o anule el registro de una carpeta conocida con el sistema.
  • Recupere todos los valores KNOWNFOLDERID registrados en ese sistema.
  • Redirigir una carpeta conocida a una nueva ubicación.

IKnownFolder proporciona un método que permite que una carpeta se redirija a sí misma proporcionando una nueva ruta de acceso. Sus otros métodos obtienen información sobre una carpeta conocida específica, entre los que se incluyen:

  • Categoría de la carpeta: virtual, fija, común o por usuario.
  • Tipo de la carpeta, como archivos comprimidos, documentos, imágenes o usuarios.
  • KNOWNFOLDERID de la carpeta.
  • Ruta de acceso completa de la carpeta como IDList o como una cadena. También su ruta de acceso relativa a una carpeta primaria.
  • Nombre canónico de la carpeta.
  • La información sobre herramientas que se muestra para la carpeta.
  • Icono que se muestra para la carpeta.
  • Descripción de la carpeta que explica su propósito y uso.
  • Si la carpeta es capaz de redirigirse.

IKnownFolder también proporciona un método para recuperar un IShellItem basado en la carpeta . Esto le permite enlazar la carpeta a un controlador, comparar dos carpetas y recuperar los atributos, el nombre para mostrar y la carpeta primaria de la carpeta.

Redireccionamiento

La redirección de carpetas es una característica importante del sistema de carpetas conocido. Todas las carpetas conocidas de categoría comúnKF_CATEGORY_COMMON* o por usuarioKF_CATEGORY_PERUSER* son redireccionables. Sin embargo, no se puede redirigir la carpeta de KF_CATEGORY_VIRTUAL virtuales de categoría* o fijaKF_CATEGORY_FIXED***.

Las carpetas se pueden redirigir a otra ubicación del mismo equipo o a una ubicación de una red. En el caso de una redirección de red, la carpeta se puede almacenar en caché localmente a través del almacenamiento en caché del lado cliente para proporcionar acceso sin conexión. Sin embargo, incluso si existe una caché local, se debe acceder a la carpeta redirigida a través de la red.

El redireccionamiento de carpetas no es nuevo para Windows Vista. Por ejemplo, en Windows XP, algunas carpetas identificadas a través del sistema CSIDL se podrían redirigir a través de una llamada a SHSetFolderPath o modificando la entrada de CSIDL en el registro. En Windows Vista y versiones posteriores, el redireccionamiento debe realizarse a través de IKnownFolder::SetPath o SHSetKnownFolderPath.

Para determinar si se puede redirigir una carpeta, llame a IKnownFolder::GetRedirectionCapabilities. Si no se puede redirigir la carpeta, esta llamada puede dar una explicación.

Si se redirige una carpeta a una ubicación de red, los métodos IKnownFolder todavía se pueden llamar correctamente en ella.

Ejemplo de carpetas conocidas