Google Drive API - 使用.NET列出文件夹内的文件

时间:2012-10-01 15:20:22

标签: google-drive-api

我有一个vb.net应用程序来访问Drive。我有一切工作,除了列出文件INSIDE一个文件夹。我需要从UI传递文件夹ID并显示其中的文件。

我已阅读其他答案,例如(Getting a list of files by folder on Drive SDK)使用附加到GET URL的“q”参数,但我没有构建GET URL。我在下面运行ListRequest时看不到如何传递Q param:

这会从ROOT中返回一个文件列表,但如何将Q传递给它以返回指定文件夹中的文件:

    Dim result As New List(Of File)()
        Dim request As FilesResource.ListRequest = service.Files.List()

        Do
            Try
                Dim files As FileList = request.Fetch()
                result.AddRange(files.Items)
                request.PageToken = files.NextPageToken
            Catch e As Exception
                Console.WriteLine("An error occurred: " + e.Message)
                request.PageToken = Nothing
            End Try
        Loop While Not [String].IsNullOrEmpty(request.PageToken)
        Return result

我需要在父母中传递“0B_p57qQpdddyl8nR0NBT3hXQUdIRFE”这样的ID。文档中的PHP示例显示在service.files.list()方法中添加参数,但.NET版本中没有重载,因此我不知道如何添加过滤器....

我可以跑:

    Dim request As ChildrenResource.ListRequest = service.Children.List(folderid)

传入folderID然后:

    Dim files As ChildList = request.Fetch()

但是这不会返回像第一个函数这样的文件列表,而只返回子文件的ID,这意味着我必须为每个等等执行单独的文件请求。

有人可以帮忙吗? 感谢。

1 个答案:

答案 0 :(得分:2)

ListRequest对象具有您可以设置的Q属性:

Dim request As FilesResource.ListRequest = service.Files.List()
request.Q = "'0B_p57qQpdddyl8nR0NBT3hXQUdIRFE' in parents"