【问题标题】:Programatically moving OneDrive files between online and offline以编程方式在联机和脱机之间移动 OneDrive 文件
【发布时间】:2021-04-20 18:11:21
【问题描述】:

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

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

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

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

这可能吗?

干杯,

罗伊

【问题讨论】:

    标签: c# .net file attributes onedrive


    【解决方案1】:

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

    FILE_ATTRIBUTE_PINNED 0x00080000
    
    FILE_ATTRIBUTE_UNPINNED 0x00100000
    

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-11-17
        • 1970-01-01
        • 2020-01-12
        • 1970-01-01
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        • 2012-03-04
        • 2012-07-30
        相关资源
        最近更新 更多