Comment interroger le statut de synchronisation OneDrive pour un fichier donné

Maintenant que Microsoft a rétabli OneDrive dans le système de fichiers de Windows 10 (et en supposant qu’il ne le relâche pas dans six mois), je cherche à déterminer l’état de synchronisation d’un fichier arbitraire.

Il y a au moins cinq états différents affichés dans Explorer (c’est juste ce que j’ai observé, il peut y en avoir d’autres):

  • Disponible en ligne Disponible en ligne
  • Disponible sur cet appareil Disponible sur cet appareil
  • Toujours disponible sur cet appareil Toujours disponible sur cet appareil
  • Synchronisation / téléchargement Synchronisation / téléchargement
  • Erreur Erreur

Les deux premiers états d’un fichier peuvent être déterminés à l’aide de l’atsortingbut FILE_ATTRIBUTE_OFFLINE .

Il semble que l’état “Toujours disponible” puisse être déterminé pour un fichier en utilisant un nouvel atsortingbut de fichier non documenté 0x00080000 .

La détermination de ces états pour les dossiers et les états de synchronisation et d’erreur pour les fichiers et les dossiers rest toutefois un mystère.

Ma première pensée a été d’utiliser le système de propriétés ( IPropertyStore ), mais les quatre clés de propriété suivantes n’ont pas pu aider:

  • PKEY_OfflineAvailability retourne VT_EMPTY
  • PKEY_OfflineStatus renvoie VT_EMPTY
  • PKEY_FilePlaceholderStatus renvoie une valeur non documentée (0xe) mais ne change pas lorsque le statut le fait
  • PKEY_FileOfflineAvailabilityStatus renvoie VT_EMPTY

J’ai le sentiment que ce sera juste une autre API Microsoft non documentée, mais je pensais demander à voir si quelqu’un avait des suggestions.