如何将流写入隔离存储中的xml文件

时间:2012-05-19 14:54:24

标签: c# windows-phone-7 stream isolatedstorage onedrive

我正在尝试将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?

                }
            }
        }...

谢谢!

2 个答案:

答案 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?中接受的答案


但是,如果网络流有可能损坏或包含无效数据,那么在保存之前可能需要对流进行反序列化并进行验证。