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

我想使用SkyDrive来备份一些信息。

但似乎他们已经删除了这个命名空间Microsoft.Live.Controls; 来自新的SDK,所有代码示例和答案都已过时。

这个参考也已经过时了; LiveConnectClient

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

(感谢任何代码示例或参考。)

这并不难,但确实没有参考或教程。 在我的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 ,然后获取文件,然后获取文件file.OpenStreamForReadAsync() ),我只是假设它是一个文本文件用于举例目的:

 using(stream) { await client.UploadAsync("me/skydrive", "myfile.txt", stream, OverwriteOption.Overwrite); } 

实际上,我已经使用了也接受CancellationTokenIProgress的重载,主要用于进度通知。

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