C# 如何简单地访问SkyDrive、写入和读取文件?

C# 如何简单地访问SkyDrive、写入和读取文件?,c#,windows-phone-7,windows-phone-8,onedrive,C#,Windows Phone 7,Windows Phone 8,Onedrive,我想用SkyDrive备份一些信息 但是他们似乎已经删除了这个名称空间Microsoft.Live.Controls以及此处的所有代码示例和答案都已过时 这也是过时的,;不再有LiveConnectClient 在这些更改之后,我如何将文件简单地备份到SkyDrive? (欢迎提供任何代码示例或参考。)这并不难,但实际上没有参考或教程。下面的所有内容在我的WindowsPhone8项目中都可以正常工作 安装Live SDK后,您需要包含Microsoft.Live命名空间 首先,您必须创建并初始

我想用SkyDrive备份一些信息

但是他们似乎已经删除了这个名称空间
Microsoft.Live.Controls以及此处的所有代码示例和答案都已过时

这也是过时的,;不再有
LiveConnectClient

在这些更改之后,我如何将文件简单地备份到SkyDrive?


(欢迎提供任何代码示例或参考。)

这并不难,但实际上没有参考或教程。下面的所有内容在我的WindowsPhone8项目中都可以正常工作

安装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);
}
也许上面的过程可以简化,但对我来说是可行的

现在,如果一切按计划进行,您可以使用客户端。我成功地从流上传了文件

假设您已获得要发送的文件的
(我通过Windows Phone 8上的WinRT file API获得该流,
IStorageFolder
,然后获取该文件,然后是
file.OpenStreamForReadAsync()
),出于示例目的,我假设它是一个文本文件:

using(stream)
{
    await client.UploadAsync("me/skydrive", "myfile.txt", stream, OverwriteOption.Overwrite);
}
实际上,我使用了重载,它也接受
CancellationToken
IProgress
,主要用于进度通知


在那里,应该将文件上传到登录用户SkyDrive的主目录。

谢谢@Patryk。那太好了。我如何才能获得密钥,
userId
,并将其放在“YourGeneratedKey”上方的代码中?(目前我无法投票,因为我的否决率很低:)sorry@user2715606 .