以编程方式在在线和离线之间移动OneDrive文件

本文关键字:之间 移动 OneDrive 文件 离线 编程 方式 在线 | 更新日期: 2023-09-27 18:05:05

我被要求编写一个小的任务托盘应用程序,它将帮助管理用户的本地驱动器空间-更具体地说,利用OneDrive的智能文件功能,使文件在离线时显示为离线

要求监视/检查用户OneDrive文件夹中的所有文件,如果它们在过去30天内没有更新,那么将它们设置为"仅在线"。

在文件资源管理器中,用户可以右键单击文件和文件夹并选择"仅在线",但目的是自动完成此操作。

我希望有一个属性或标志,我可以在c# . net中的File或FileInfo对象中设置,然后触发同步代理执行必要的操作。

这可能吗?

欢呼,罗伊

以编程方式在在线和离线之间移动OneDrive文件

OneDrive的'Always keep on this device'菜单设置了Pinned文件属性。'Free up space'菜单设置Unpinned文件系统属性:

FILE_ATTRIBUTE_PINNED 0x00080000
FILE_ATTRIBUTE_UNPINNED 0x00100000

我猜OneDrive会监控这些属性,如果你改变它们,就会触发水合作用/脱水。

你也可以通过调用CfHydratePlaceholder() Windows API来触发水合作用。您可以通过调用CfUpdatePlaceholder()来脱水。

考虑到Windows 10目前缺乏智能文件,我不会花时间在这样的功能上,而且很可能大多数目前使用Windows 8.1的用户都会升级。