如何查询给定文件的OneDrive同步状态

既然微软已经在Windows 10中的文件系统中恢复了OneDrive(假设他们在6个月的时间内不再删除它),我正在寻找如何确定任意文件的同步状态。

资源pipe理器中显示至less有五种不同的状态(这正是我所观察到的,也可能有其他状态):

  • 在线时可用 在线时可用
  • 可在此设备上使用 可在此设备上使用
  • 始终可在此设备上使用 始终可在此设备上使用
  • 正在同步/下载 正在同步/下载
  • 错误 错误

前两个状态,对于一个文件,可以使用FILE_ATTRIBUTE_OFFLINE属性来确定。

似乎可以使用新的未logging的文件属性0x00080000为文件确定“始终可用”状态。

确定文件夹的这些状态以及文件和文件夹的同步和错误状态仍然是一个谜。

我的第一个想法是使用属性系统( IPropertyStore ),但以下四个属性键都没有帮助:

  • PKEY_OfflineAvailability返回VT_EMPTY
  • PKEY_OfflineStatus返回VT_EMPTY
  • PKEY_FilePlaceholderStatus返回一个未logging的值(0xe),但是当状态发生时它不会改变
  • PKEY_FileOfflineAvailabilityStatus返回VT_EMPTY

我有一种感觉,这将成为另一个无证的微软API,但我想我会问,看看有没有人有任何build议。