3

Windows8アプリケーションのSkyDriveAPIを使用して、テキストファイルをスカイドライブにアップロードするか、少なくとも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に存在しないために質問しています(feLiveConnectClient.Upload。BackgroundUploadAsyncのみがあります)。

事前に助けてくれてありがとう、ミシェル

4

3 に答える 3

3

閉じますが、私が書いたように:LiveConnectClientクラスに含まれていないため、client.uploadメソッドを使用できません。というわけで、サイトのコンテンツ更新について質問させていただきました。

とにかく - 私は答えを得ました:

//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                
}
于 2012-08-25T09:54:55.357 に答える
2

LiveConnectionClient で Upload メソッドを使用する必要があります。たとえば、ライブ SDKのファイルのアップロードの例を参照してください。何かのようなもの ...

LiveOperationResult fileOperationResult =
     await client.Upload("me/skydrive", /*file name here*/, /*file stream here*/);
于 2012-08-24T16:42:26.270 に答える
0

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);
        }

    }
于 2014-02-15T18:45:32.527 に答える