1

我有一个声明自定义文件格式的基本 UWP Windows 10 应用程序(在 PC 上运行)。用户可以打开和编辑该格式的文档(例如,很像在 Word Mobile 中打开 .docx 文件)。

我的问题是这样的:假设用户使用我的应用程序从 OneDrive 打开一个文档,并且该文档在另一台设备上进行了修改。我的应用程序如何获得有关更改以重新加载文档的通知?

额外的问题:) 如果在本地和同时在另一台设备上修改文件时发生冲突怎么办?

在内部StorageFile,我使用从 a 获得的 aFileOpenPicker来阅读文档。

我查看了StorageFolder.CreateFileQueryWithOptions(...),但我无法获得对 StorageFile 父文件夹的引用,因为我的应用程序只有读取文件本身的权限,而不能访问父文件夹。

我可以定期轮询文件的修改日期,但这似乎远非理想......

4

1 回答 1

1

我认为 OneDrive API 和webhook
可以实现 不幸的是我找不到任何 UWP 示例(只有一个 ASP.NET可用)

您也可以尝试使用ContentsChanged事件

 auto query = folder.CreateFileQuery();
 query.ContentsChanged += queryContentsChanged;

…………

void queryContentsChanged(IStorageQueryResultBase sender, object args) 
{
    // check what was changed 
}

您可以在此处找到一些信息:WinRT 中的文件系统更改通知

由于智能文件的概念,这也应该适用于 OneDrive。摘自本文:使用本地 PC 和 SkyDrive 上的文件

作为开发人员,将 SkyDrive 文件视为“只是文件”——它们使用与系统上所有其他文件相同的 StorageFile 接口,并且可以以几乎相同的方式进行操作。

智能文件是像常规文件一样出现在系统上的文件,但只包含元数据和缩略图,而不是完整的文件内容。该文件的内容位于 SkyDrive 上,可以根据需要下载。

于 2016-06-15T09:30:50.650 回答