使用LiveConnectAPI从skydrive下载“Text”文件的内容

时间:2013-07-16 09:41:36

标签: c# windows-phone-7 live-connect-sdk

我正在使用 LiveConnectAPI 为我的 windows phone 7 应用从 skydrive 下载文本文件
Text文件包含我需要在 IsolatedStorage

中编写的XML数据

问题是当我从skydrive下载文件并写入 IsolatedStorage 时,我在 IsolatedStream 中得到 NULL
我需要编写 skydrive 根文件夹中的 TextFile 的XML内容。

注意: - 名为 userData.txt 的文件位于“me / skydrive / files”(skydrive的根文件夹,如果我在访问根文件夹时出错,请更正我)


string id = string.Empty;
>client.GetCompleted += (obj, args) =>
                {
                   List<Object> items = args.Result["data"] as List<Object>;
                    foreach (object item in items)
                    {
                        Dictionary<string, object> file = item as Dictionary<string, object>;
                        if (file["name"].ToString() == "userData.txt")
                        {
                            id = file["id"].ToString();
                            break;
                        }
                    }

                    client.DownloadAsync(id+"/content");

                };

                client.GetAsync("me/skydrive/files");
  

下载完成时

client.DownloadCompleted += (o, a) =>
             {
                MemoryStream outputStream = (MemoryStream)a.Result;

//Saving the file to Isolated Storage.

                var myStore = IsolatedStorageFile.GetUserStoreForApplication();
                IsolatedStorageFileStream myFileStream = myStore.CreateFile(GlobalConstants.cnst_storefile_name);
                myFileStream.Write(outputStream.GetBuffer(), 0, (int)outputStream.Length);


                myFileStream.Close();

                StreamReader reader = new StreamReader(new IsolatedStorageFileStream(GlobalConstants.cnst_storefile_name, FileMode.Open, myStore));
                string rawData = reader.ReadToEnd();
                reader.Close();

            };

        }

1 个答案:

答案 0 :(得分:1)

您可以查看您正在使用的LiveConnect库的版本。 Microsoft最近对SkyDrive进行了一些重大更改,使用旧版本库构建的代码不再起作用。你想要图书馆的5.4版本。