2017-03-31 4 views
2

私はGoogleドライブでフォルダを作成することに慣れていますが、非同期メソッドを使用してこれを行う方法を検討しています。しかし、そうすることで、返すフィールドに明示的に追加したフィールドを取得する方法がわかりません。ExecuteAsync()メソッドからフィールドを取得する方法

以下の私のコード:documentationから例を使用して

private Task<Google.Apis.Drive.v3.Data.File> CreateGoogleDriveFolderAsync(DriveService service, string foldername, string parent_id = null) 
{ 
    IList<string> parent_ids = new List<string>(); 

    Google.Apis.Drive.v3.Data.File folder = new Google.Apis.Drive.v3.Data.File 
    { 
     Name = foldername 
     , MimeType = "application/vnd.google-apps.folder" 
     , Description = "Client Name: blah\nUser: Rudy\n" 
    }; 

    var insert = service.Files.Create(folder); 

    // The field I'd like to get somewhere. 
    insert.Fields = "id"; 

    var task = insert.ExecuteAsync(); 

    task.ContinueWith(t => 
    { 
     // NotOnRanToCompletion - this code will be called if the upload fails 
     Console.WriteLine("Failed to create folder \"{0}\": " + t.Exception, foldername); 
    }, TaskContinuationOptions.NotOnRanToCompletion); 
    task.ContinueWith(t => 
    { 
     // I'd like a way to access "id" from my insert execution. 
     log.insertLogging(foldername, "Directory Created"); 
    }); 

    return task; 
} 
+4

へのアクセス権を持っている必要があり、そこから戻ってファイルを取得するタスクを待つとgetそこから戻ってきたファイルは、そのプロパティにアクセスする必要があります – Nkosi

+0

ありがとう、@ Nkosi、私は待っていますが、 "その"プロパティへのアクセス?私のメソッド呼び出しは次の通りです: 'CreateGoogleDriveFolderAsync(service、" MyNewFolder ");' –

答えて

3

awaitタスクとあなたがそのプロパティ

private async Task<File> CreateGoogleDriveFolderAsync(DriveService driveService, string foldername) { 
    var metadata = new File() 
    { 
     Name = foldername, 
     MimeType = "application/vnd.google-apps.folder" 
    }; 
    var request = driveService.Files.Create(metadata); 
    request.Fields = "id"; 
    var folder = await request.ExecuteAsync(); 
    Console.WriteLine("Folder ID: " + folder.Id); 

    return folder; 
} 
+0

ありがとう、これです。私は何かを待っている電話を設定していませんでした。私はまた、このメソッドで私はこれを行うことができます: 'task.Result.Id'、' task.Result'はGoogleファイルを返します。再度、感謝します。 –

関連する問題