以编程方式在联机和脱机之间移动 OneDrive 文件

Cor*_*ues 2 .net c# attributes file onedrive

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

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

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

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

这可能吗?

干杯,

罗伊

mon*_*t13 6

OneDrive 的“始终保留在此设备上”菜单设置Pinned文件属性。“释放空间”菜单设置Unpinned文件系统属性:

FILE_ATTRIBUTE_PINNED 0x00080000

FILE_ATTRIBUTE_UNPINNED 0x00100000
Run Code Online (Sandbox Code Playgroud)

我猜想 OneDrive 会监视这些属性,并在您更改它们时触发水合/脱水。

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