2012-11-13 27 views
1

在文件選擇Windows 8的樣本保存文件是這樣的:我需要調用CachedFileManager.DeferUpdates在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,如果我確實需要使用,我是保存在正確的道路文件。

此代碼,並將文件保存很好,但我不喜歡,包括代碼,我不明白。

回答

1

是的,這個代碼將工作沒有CachedFileManager。但是,當您使用CachedFileManager時,您通知文件提供程序該文件正在更改。如果您的文件位於SkyDrive上,創建文件並立即上傳文件的速度會更快,而不是多次更新。

+0

如果有一個使用(VAR outStream = ...)的一部分,或者不需要流被關閉? –

+1

是的,在那裏有使用聲明。這是使用流並正確釋放它的正確模式。 安德烈的評論,你真的想,只要你從文件選擇器獲得StorageFile使用CachedFileManager調用,因爲它可能來自在線資源。如果你知道你如你的應用程序數據文件夾的東西寫入本地文件系統,上一個文件時,它是沒有必要的。 –

相關問題