.NET Google Drive API - 获取包含父文件夹的文件

时间:2017-07-18 13:59:13

标签: c# .net api google-api google-api-dotnet-client

是否有任何可能的方法来获取具有父文件夹名称的文件列表,而无需进行其他查询?

我的Files.List()代码示例:

var sheets = new List<File>();
var sheetsRequest = Service.Files.List();
sheetsRequest.Fields = "nextPageToken, files(id, name, owners, parents)";
sheetsRequest.Q = $"mimeType = '{mimeType}' and name = '{name}'";
sheetsRequest.PageSize = 500;
var sheetsFeed = await sheetsRequest.ExecuteAsync();
while (sheetsFeed.Files != null)
{
    foreach (var file in sheetsFeed.Files)
    {
        sheets.Add(file);
    }
    if (sheetsFeed.NextPageToken == null)
        break;
    sheetsRequest.PageToken = sheetsFeed.NextPageToken;
    sheetsFeed = await sheetsRequest.ExecuteAsync();
}
return sheets;

因为现在我使用以下方法为每个GetFileParentDirAsync调用File(而且速度非常慢):

public async Task<string> GetFileParentDirAsync(File file)
{
    return await Task.Run(async () =>
    {
        var folderName = string.Empty;

        if (file.Parents?.First() == null) return folderName;

        var parentId = file.Parents.First();
        var parentRequest = Service.Files.Get(parentId);
        var parentResponse = await parentRequest.ExecuteAsync();

        folderName = parentResponse.Name;

        return folderName;
    });
}

感谢。

0 个答案:

没有答案