我被要求编写一个小任务托盘应用程序,它将有助于管理用户本地驱动器空间 - 更具体地说,是利用OneDrive的智能文件功能,以便文件在没有时脱机。
问题是监视/检查用户OneDrive文件夹中的所有文件,如果它们在过去30天内没有更新,则将它们设置为“仅在线”。
在文件资源管理器中,用户可以右键单击文件和文件夹,然后选择“仅在线制作”,但目的是自动执行此操作。
我希望我可以在C#.Net中的File或FileInfo对象中设置一个属性或标志,然后触发同步代理执行必要的操作。
这可能吗?
干杯,
罗伊
答案 0 :(得分:4)
OneDrive 的“始终保留在此设备上”菜单设置 Pinned
文件属性。 “释放空间”菜单设置 Unpinned
文件系统属性:
FILE_ATTRIBUTE_PINNED 0x00080000
FILE_ATTRIBUTE_UNPINNED 0x00100000
我猜 OneDrive 会监控这些属性,并在您更改它们时触发补水/脱水。
您还可以通过调用 CfHydratePlaceholder() Windows API 来触发补水。您可以通过拨打 CfUpdatePlaceholder() 来脱水。
答案 1 :(得分:0)
鉴于Windows 10目前缺少智能文件,我不会在这样的功能上投入时间,而且目前在Windows 8.1上的大多数用户可能会升级。