1

在文件选择器 Windows 8 示例中,文件保存如下:

CachedFileManager.DeferUpdates(file);
await FileIO.WriteTextAsync(file, stringContent);
FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

我将一个对象序列化为 XML,所以这样做略有不同:

// CachedFileManager.DeferUpdates(file);
var ras = await file.OpenAsync(FileAccessMode.ReadWrite);
var outStream = ras.GetOutputStreamAt(0);
var serializer = new XMLSerializer();
serializer.Write(myObject, outStream);
// FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

无论有没有 CachedFileManager(上面注释掉),它都可以工作。

所以,我应该包含 CachedFileManager 吗?如果我使用它,我是否以正确的方式保存文件。

此代码可以正常工作并很好地保存文件,但我不喜欢包含我不理解的代码。

4

2 回答 2

1

是的,此代码将在没有 CachedFileManager 的情况下工作。但是,当您使用 CachedFileManager 时,您会通知文件提供者该文件正在更改中。如果您的文件位于 SkyDrive 上,则创建文件并一次上传会比多次更新更快。

于 2012-11-13T16:49:21.320 回答
0

你可以在那里获得完整的故事:http: //www.jonathanantoine.com/2013/03/25/win8-the-cached-file-updater-contract-or-how-to-make-more-useful-the-文件保存选择器合同/

它只是告诉“存储库”应用程序上传文件。

于 2013-03-25T13:18:12.777 回答