我正在尝试将SkyDrive备份应用到我的应用中。一切都运行正常,但我不知道如何轻松地将流(从SkyDrive下载的备份)保存到隔离存储中。
我知道我可以对流进行去激活而不是保存,但这会不必要地复杂化。
所以,这是我的问题:
我有一个来自SkyDrive文件的Stream,我需要将它作为文件'Settings.XML'保存到IsolatedStorage。
所以基本上我需要将'stream'写入Isolated Storage
中的Settings.xml文件 static void client_DownloadCompleted(object sender, LiveDownloadCompletedEventArgs e, string saveToPath)
{
Stream stream = e.Result; //Need to write this into IS
try
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(saveToPath, FileMode.Create))
{
//How to save it?
}
}
}...
谢谢!
答案 0 :(得分:2)
使用steam的CopyTo()方法 - http://msdn.microsoft.com/en-us/library/dd782932.aspx
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(saveToPath, FileMode.Create))
{
stream.CopyTo(fileStream);
}
答案 1 :(得分:2)
最快最简单的方法是将块中的字节从一个流复制到下一个流 - 请参阅How do I copy the contents of one stream to another?中接受的答案
但是,如果网络流有可能损坏或包含无效数据,那么在保存之前可能需要对流进行反序列化并进行验证。