【问题标题】:UWP: Is it possible to create your own network files (similar to Onedrive)?UWP:是否可以创建自己的网络文件(类似于 Onedrive)?
【发布时间】:2018-05-10 16:39:25
【问题描述】:

我正在查看Determining availability of Microsoft OneDrive files 的文档,我想知道是否可以自己创建此类文件。换句话说,是否可以创建可以由您的应用程序自动下载或同步的网络文件,或者此功能是否为 OneDrive 保留?

我自己找不到任何关于此的信息,我假设是后者,但我希望其他人可以提供有关此主题的更多见解。

【问题讨论】:

  • 有可能,但它可能比您希望的要复杂得多。毕竟,googledrive 管理它
  • 当然可以。就像可以创建自己的消息队列系统、自己的数据库系统、自己的操作系统、自己的加密算法、自己的通信协议等等。最大的问题是是否值得付出努力,如果你真的认为当涉及到此类系统的重要属性时,您可以达到与现有解决方案相同的质量水平。
  • 你实现了cloud filter provider。这绝对是不平凡的。
  • 您可以使用这个商业产品:shellboost.com,这使这变得更容易(免责声明:我为销售它的公司工作)。

标签: c# uwp onedrive


【解决方案1】:

自 Windows 10 创意者更新以来,Microsoft 提供了Cloud Sync Engine / Cloud Filter API。它支持 OneDrive 拥有的所有功能:下载(水化)、同步、离线模式和 Win 文件管理器中的命令。一些 API 可通过 .NET 获得,但大多数是 Win32 API。

以下是 GitHub 上的示例:

Cloud Filter API 提供了多种模式,其中一些模式不适用于类似 OneDrive 的磁盘。这里有一些一般原则,所以你不需要测试和理解所有模式:

  1. 使用StorageProviderSyncRootInfo 创建您的存储,并将PopulationPolicy 设置为StorageProviderPopulationPolicy.Full。然后,当应用程序尝试列出文件夹内容或读取文件内容时,将调用您的回调。

  2. 在第一个文件夹列表中,在 CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS 中创建占位符。完成初始文件夹列表后禁用按需填充。不要更新此回调中的占位符。看起来它只是为初始占位符创建而设计的。

  3. 当在服务器上创建/更新/删除/移动/重命名任何文件/文件夹时,通过 Web 套接字或其他技术(推送)通知客户端并相应地更新客户端占位符。或者,您可以拉取服务器或实现其他同步算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2013-11-24
    • 2015-03-02
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多