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

时间:2015-07-27 20:51:44

标签: c# .net file attributes onedrive

我被要求编写一个小任务托盘应用程序,它将有助于管理用户本地驱动器空间 - 更具体地说,是利用OneDrive的智能文件功能,以便文件在没有时脱机。

问题是监视/检查用户OneDrive文件夹中的所有文件,如果它们在过去30天内没有更新,则将它们设置为“仅在线”。

在文件资源管理器中,用户可以右键单击文件和文件夹,然后选择“仅在线制作”,但目的是自动执行此操作。

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

这可能吗?

干杯,

罗伊

2 个答案:

答案 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上的大多数用户可能会升级。

相关问题