UWP:是否可以创建自己的网络文件(类似于 Onedrive)?

UWP: Is it possible to create your own network files (similar to Onedrive)?

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

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

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

以下是 GitHub 上的示例:

Cloud Filter API 提供多种模式,其中一些不适用于 OneDrive-like 磁盘。这里有一些通用原则,因此您无需测试和了解所有模式:

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

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

  3. 当服务器上的任何 file/folder 为 created/updated/deleted/moved/renamed 时,通过网络套接字或其他技术(推送)通知客户端并相应地更新客户端占位符。或者,您可以拉取服务器或实施其他同步算法。