2013-02-05 195 views
0

我想解决如何创建一个简单的.NET控制台应用程序来访问skydrive,所以我可以从命令行发送和接收文件。如何编写.NET控制台应用程序以访问SkyDrive?

Live Connect SDK和文档似乎有点模糊,一般针对Metro或HTML应用程序。

如果有人知道如何认证并列出内容,我认为这应该很简单,那么其余的内容可能会很容易。

理想情况下,我想使用API​​,但如果必须恢复到驱动REST API,那也没关系。

下面是一个代码块,我试图用

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Microsoft.Live; 

namespace SkyDriveCmd 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       var task = Run(); 
       task.Wait(); 
      } 
      catch (Exception ex) 
      { 
       Console.Error.WriteLine(ex); 
      } 
     } 

     private static async Task Run() 
     { 
      var auth = new LiveAuthClient("XXXXXXXXXXXXX"); 
      var client = new LiveConnectClient(auth.Session); 
      var result = await client.GetAsync("/"); 
      Console.WriteLine(result.RawResult); 
     } 
    } 
} 

我知道这是错误的,因为auth.Session为空,但我发现一个巨大的缺乏文档围绕如何这可能是工作。

+3

你可以只骗。安装Skydrive客户端,然后在这些文件夹上使用正常的文件I/O操作。 –

+1

你有什么试过的?你有代码可以告诉我们吗,想象你的代码是不可能的。 – 8bitcat

+0

@Nick Randell检查这个问题,它可能会帮助你http://stackoverflow.com/questions/12112617/upload-file-to-skydrive-through-skydrive-api – 8bitcat

回答

0

下面是使用下载的API的例子来自http://skydriveapiclient.codeplex.com/releases/view/103081

static void Main(string[] args) 
    { 
     var client = new SkyDriveServiceClient(); 

     client.LogOn("[email protected]", "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); 
     } 

    } 
相关问题