我想使用SkyDrive来备份一些信息。
但似乎他们已从新SDK中删除了此命名空间Microsoft.Live.Controls;
,所有代码示例和此处的答案都已过时。
此reference也已过时;没有更多LiveConnectClient
如何在这些更改后将文件简单地备份到SkyDrive?
(感谢任何代码示例或参考。)
答案 0 :(得分:4)
这并不难,但确实没有参考或教程。在我的Windows Phone 8项目中,下面的所有内容都可以正常工作。
安装Live SDK后,您需要包含Microsoft.Live
命名空间。
首先,您必须创建并初始化客户端。之后,您登录并可以发送一些数据:
LiveConnectClient client;
var auth = new LiveAuthClient("YourGeneratedKey");
var result = await auth.InitializeAsync(new [] {"wl.basic", "wl.signin", "wl.skydrive_update" });
// If you're not connected yet, that means you'll have to log in.
if(result.Status != LiveConnectSessionStatus.Connected)
{
// This will automatically show the login screen
result = await auth.LoginAsync(new [] {"wl.basic", "wl.signin", "wl.skydrive_update" });
}
if(result.Status == LiveConnectSessionStatus.Connected)
{
client = new LiveConnectClient(result.Session);
}
也许上面的过程可以简化,但它对我有用。
现在,如果一切按计划进行,您可以使用客户端。我成功地从流中上传了文件。
假设您已经获得了要发送的文件的Stream
(我通过Windows Phone 8上的WinRT文件API IStorageFolder
获得了该文件,然后获取文件,然后{{1我只是假设它是一个文本文件,例如:
file.OpenStreamForReadAsync()
实际上,我已经使用了也接受using(stream)
{
await client.UploadAsync("me/skydrive", "myfile.txt", stream, OverwriteOption.Overwrite);
}
和CancellationToken
的重载,主要用于进度通知。
那里应该将文件上传到登录用户的SkyDrive上的主目录。