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 に答える