通过SkyDrive API将文件上传到skydrive

我尝试将文本文件上传到我的skydrive或者至少在SD中创建新的文本文件并通过我的Windows 8应用程序中的SkyDrive API编辑它的内容。 我怎样才能做到这一点?

我试着这样做:

LiveConnectClient client = new LiveConnectClient(session); var fileData = new Dictionary(); fileData.Add("name", "new_file.txt"); try { LiveOperationResult fileOperationResult = await client.PutAsync("me/skydrive", fileData); this.infoTextBlock.Text = fileOperationResult.ToString(); } catch (LiveConnectException exception) { this.infoTextBlock.Text = exception.Message; } 

但我收到错误“提供的请求无效。无法更新根SkyDrive文件夹。” 如果我写了类似“me / skydrive /”的内容,我会收到“提供的URL无效。不支持请求的路径”。 方法LiveConnectClient.PutAsync只允许我更新现有属性(但不是它的内容)。

应该如何正确地完成?

顺便说一句 – LCDC上的内容(http://msdn.microsoft.com/en-us/library/live/hh826531.aspx)是否已更新? 我问,因为dlls中不存在文档中的某些方法(fe LiveConnectClient.Upload。只有BackgroundUploadAsync)。

感谢您提前帮助,Micheal

关闭,但正如我写的:我不能使用client.upload方法,因为LiveConnectClient类不包含它。 这就是我询问网站内容更新的原因。

无论如何 – 我有一个答案:

 //create a StorageFile (here is one way to do that if it is stored in your ApplicationData) StorageFile file = awaitApplicationData.Current.LocalFolder.GetFileAsync("yourfilename.txt"); try { client = new LiveConnectClient(session); LiveOperationResult operationResult = await client.BackgroundUploadAsync("me/skydrive", file.Name, file, OverwriteOption.Overwrite); } catch (LiveConnectException exception) { //handle exception } 

您应该在LiveConnectionClient上使用Upload方法。 例如,请参阅Live SDK中的“上载文件”示例 。 就像是 …

 LiveOperationResult fileOperationResult = await client.Upload("me/skydrive", /*file name here*/, /*file stream here*/); 

以下是使用从http://skydriveapiclient.codeplex.com/releases/view/103081下载的SkyDriveApiClient从控制台应用程序上传文件的另一种方法

  static void Main(string[] args) { var client = new SkyDriveServiceClient(); client.LogOn("YourEmail@hotmail.com", "password"); WebFolderInfo wfInfo = new WebFolderInfo(); WebFolderInfo[] wfInfoArray = client.ListRootWebFolders(); wfInfo = wfInfoArray[0]; client.Timeout = 1000000000; string fn = @"test.txt"; if (File.Exists(fn)) { client.UploadWebFile(fn, wfInfo); } }