c# - 通过SkyDrive API上传文件到skydrive

标签 c# file-upload windows-8 microsoft-metro onedrive

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

我试着做这样的事情:

        LiveConnectClient client = new LiveConnectClient(session);
        var fileData = new Dictionary<string, object>();
        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) 上的内容是否已更新?我问是因为文档中的某些方法在 dll 中不存在(例如 LiveConnectClient.Upload。只有 BackgroundUploadAsync)。

提前感谢您的帮助, 迈克尔

最佳答案

关闭,但如我所写:我不能使用 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                
}

关于c# - 通过SkyDrive API上传文件到skydrive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12112617/

相关文章:

c# - Entity Framework ObjectQuery.Include()

python - flask 在哪里寻找图像文件?

php - 允许用户在 PHP 中上传个人资料图片

windows-8 - indexeddb 按多个索引排序

.net - Windows Metro 应用程序中没有 P2P?

c# - Photon中如何为玩家初始化相机

c# - 在 PCL 中将 String 资源添加到 .resx 会导致编译错误

c# - 了解 WinDbg 输出

c# - ASP.NET - 限制文件上传可用的文件类型

visual-studio - Windows 8 应用程序部署