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

时间:2017-11-27 12:25:51

标签: c# uwp onedrive

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

我自己也找不到任何相关内容,而且我假设后者,但我希望其他人可以提供更多有关此主题的见解。

1 个答案:

答案 0 :(得分:3)

自Windows 10创建者更新以来,Microsoft提供了Cloud Sync Engine / Cloud Filter API。它支持OneDrive的所有功能:下载(水化),同步,脱机模式以及Win File Manager中的命令。可以通过.NET使用某些API,但大多数是Win32 API。

以下是GitHub上的示例:

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

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

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

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