retrieveallfiles修改

时间:2012-09-14 21:01:20

标签: google-drive-api

我需要解析特定的文件夹以查看是否存在文件夹标题。如果没有,那么我想创建它。

以下v2 c#代码将列出我的Google云端硬盘文件中的每个文件。如何将其修改为仅返回单个文件夹的文件列表(使用文件夹资源ID)?我明白一切都是文件,包括文件夹。

/// <summary>
    /// Retrieve a list of File resources.
    /// </summary>
    /// <param name="service">Drive API service instance.</param>
    /// <returns>List of File resources.</returns>
    public static List<File> retrieveAllFiles(DriveService service)
    {
        List<File> result = new List<File>();
        FilesResource.ListRequest request = service.Files.List();

        do
        {
            try
            {
                FileList files = request.Fetch();

                result.AddRange(files.Items);
                request.PageToken = files.NextPageToken;
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred: " + e.Message);
                request.PageToken = null;
            }
        } while (!String.IsNullOrEmpty(request.PageToken));
        return result;
    }

1 个答案:

答案 0 :(得分:1)

您可以使用q search parameter将结果限制为属于单个文件夹的文件,如下例所示:

'1234567' in parents

其中'1234567'是文件夹ID。

要在C#中执行相同的查询,可以使用以下代码:

FilesResource.ListRequest request = service.Files.List();
request.Q = "'1234567' in parents";

作为替代方案,如果您只需要文件夹中文件的ID,则可以使用Children feed

ChildrenResource.ListRequest request = service.Children.List(folderId);
ChildList children = request.Fetch();