【发布时间】:2012-07-26 08:17:12
【问题描述】:
我有一个管理文档的 WinRT Metro 应用程序(XAML/C#,Windows Release Preview)。文档在内存中表示并通过 Web 服务获取,但并未物理存储在磁盘上。
为了改进我的应用程序,我想实现 FileSavePicker 合同。因此,其他应用程序可以将他们的文档直接保存到我的应用程序中。但似乎无法将内存中的文件保存选择器中的内容获取到我的应用程序中。我已将一个事件处理程序附加到当用户想要将文件保存到我的应用程序时触发的 FileSavePickerActivatedEventArgs.FileSavePickerUI.TargetFileRequested 事件。但是在这里我必须将TargetFileRequestedEventArgs.Request.TargetFile 设置为StorageFile,因为我在内存中并且还没有文件,所以这个操作失败了。
此外(即使我有一个 StorageFile)我必须对文件保存过程的完成做出反应,而且似乎没有我可以采取的方法/事件来处理这个问题。
我不明白为什么微软决定为文件保存选择器合约采用这种 API 方式。为什么我不能将保存的数据/文件作为参数/流并做我想做的事?在这种情况下,沙盒/安全性不是原因!
编辑:我已经看到并查看了 SDK 中的文件选择器合同示例应用程序,但它没有帮助,因为它只保存到物理 StorageFile。
【问题讨论】:
标签: c# windows-8 microsoft-metro windows-runtime